About This Website


When I set out to build this website, I wanted more than a handful of statically-hosted filed wrapped up in a common Gatsby theme. This page serves as a reference as to how this website was built, and documents the reasons behind the design decisions along the way.

Part I — Exploring the Solution Space

A lot of work has been put into discovering how to build good websites [Citation Needed]. Many people smarter than I have gone the simple way, using a static hosting platform/engine like Ghost, WordPress, Jekyll, and so on to build their website.

I didn't want to use a platform, because anything you write on that platform isn't really yours. I could host something myself, but I figured If I was going to blaze my own trail I may as well do something new.

I decided on some loose goals I needed my website to meet, at minimum:

  1. It should be snappy, with statically-hosted speeds (even if it wasn't).
  2. It should be well-designed. This isn't exactly the most concrete goal, so here are some specific sub-goals:
    • Content should be front and center. You should know what you're reading—the text should be the right size, right contrast, and laid out in a visually appealing manner.
    • It should be explorable. Intuitive as to what everything does, forgiving of mistakes, with plenty of room for easter-eggs and so on. If a random person were to stumble upon this website, I'd hope they'd feel at home and stay a while.
  3. It should be editable. I don't want to edit some code and republish from the command-line for every little change. A built in editor/cms, if you will.
  4. Finally, it should be permanent. I find small personal websites to be an endangered species, and want to be able to write long-form content that will be around for a while. I'd also like past versions and revisions of pages to be archived available for viewing.

This seems like quite the list, and to be honest, this was all quite daunting. I think I've delivered on what I hoped for (and if I didn't, this list was written in retrospect, so sorry past self 😬).

Part II - Architecture


This article is a work-in-progress; check back later for more!

Part III - Implementation