I recently redesigned my website. This was partially initiated by wanting to build it with Angular instead of PHP, but also because my résumé was due to be updated. Since that's mostly what my website is for anyway, I decided to just make a whole project of it. In making that decision, I reconsidered the entire process I've used for this in the past and made a few major changes.
My previous site design was modeled after my paper résumé because I like having everything match. Hand in my paper résumé, potential employer looks me up online, BAM! It all matches. Every time I want to change my profile picture I have to go through every social network I'm on (which is a lot of them) and change them all at the same time. So my paper résumé and website maintain the same ordeal. Likewise, my job experience and other data is copied to my LinkedIn profile and Facebook profile. This time around, I reversed the process a little.
I previously designed my résumé using Pages, then modeled my website after it. It was easy enough. My résumé isn't a terribly fancy document so that was easy to do. The end result was pretty decent. It all looked alright and it served its purpose. I'm not a designer and don't pretend to be one, but I am a front-end web developer. I know enough to get by an nothing have a massive pile of shit. (That said, my new site does need a little more work and I will be fixing it soon). The idea here was that I'm more constrained in Pages or Word, so using that as my base design seemed easier than the other way around. But this time around I rethought that because I realized one simple thing: I can save a web page as a PDF with the print dialog. Boom.
Instead of wasting time fiddling around in Pages at all, I decided to just go make a website and include a print stylesheet. This let me hide anything I didn't want on my paper résumé while easily maintaining the same layout and aesthetic. The current print style needs work along with the rest of it, but it'll get me through.
So this left me thinking about how I wanted to track the content. I could've just made it all an HTML document and let it be, but that seemed like a lot of extra clutter to wade through anytime I want to make a change. I then thought, "why not JSON?". It's my résumé stripped down to nothing but its content. I can easily use it as my base to redesign it in any number of ways.
In the end, I couldn't think of a single reason for my website to not be open-source, so I put the entire thing on GitHub. While I've done a few projects besides this with Angular, I am by no means an expert at how things "should" be done with it, so if you're an Angular dev and I'v done something stupid with it, please, submit a pull request and teach me something. Just be nice.