This is a short post describing how I built and designed this website. It should be helpful for anyone thinking about starting a new personal website or updating one they already have.
I first built this site back in 2015 and decided to use Jekyll, which is a static site generator, meaning I can develop locally using a server but only deploy static files like HTML, CSS, JS, and images. This approach works well for me and I think most personal sites.
If I was starting from scratch today I might consider something React-based like GatsbyJS but I would definitely still use a static site generator for my needs.
A big plus of having a static site is that deployment is cheap. In the past I hosted the site on Amazon S3 but for the past year I’ve been using Netlify. It’s fantastic. Netlify handles so many things that I had to juggle in the past manually including HTTPS via Let’s Encrypt, CDN, minimizing assets, DNS, and more. And it is free until you reach a large audience size or add custom features.
Over the years I’ve twiddled with the design on this site a lot. Probably too much but I view it as a lab for learning and playing around with layouts. These days I keep things very, very simple. Custom CSS and not much more. Lots of white space. I do use custom fonts which make a big difference in the look and feel, notably Concourse for the text, Equity for the headlines, and Triplicate for the code samples.
Probably the single best piece of advice I can give on design is to use a custom font. They’re worth the money. Matthew Butterick, who designed all three of my fonts, has a fantastic free online book, Practical Typography, that I strongly recommend.
Currently I use Disqus for comments on my site. It’s not perfect–there are ads and additional tracking involved–however I’ve found readers are far more likely to leave a comment than email me with feedback. And I really enjoy the feedback on everything from small typos to larger debates about content I’ve written.
If I did have my own commenting system, I’d need to move off a static site architecture, which I don’t want to do. Also doing auto-detection of profanities and other things is non-trivial and Disqus handles it.
That said, I can definitely see a future where I don’t have any comments at all. It would mean a simpler site design. Faster loading times. And save me some time but I still value the interaction and don’t have that much spam so…worth it for now.
Big picture it is highly worth the effort to setup and automate a personal website for yourself. There is zero friction in my current setup and I enjoy the chance to fiddle with things when I need a break from formal projects.