Site tech


These are some of the little details in the site that I’m proud of. You can always see how they work in the source code.


This site’s tech stack throughout the years.

  • June 2021

    The site now auto deploys through GitHub actions.

    I’ve built my own image processing pipeline using some hacky node scripts that uploads to a DigitalOcean Spaces CDN. I was running into issues where without caches the site would take 10+ minutes to build, primarily due to the number of image variations I support in my responsive image templates, which prevented automating deployments. It’s not perfect—there’s a fair amount of duplication of knowledge between the hugo and npm sides of things and file fingerprinting could be a lot better, but it’s a fairly simple, as it should be for a personal website.

  • March 2020

    Hugo static site with a custom theme. I chose Hugo since it’s the top starred static site generator on StaticGen that doesn’t rely on client-side rendering. I’m familiar with Go-style templates, which Hugo uses. Since switching, I’ve even contributed to the project. It has a good mix of power and simplicity and ships as a standalone binary (no ruby installation to deal with). I still use Digital Ocean and nginx but now host several other sites and tools. I’m using docker, docker-compose, and some custom scripts to provision and isolate each app.

    For newer apps, I generally use docker from the start. Some have images published to GitHub packages; some don’t. For projects I’m not planning to revisit or have archived, I reverse-engineered Dockerfiles and stored them in my host-configuration repo.

  • October 2016

    Added https support through Let’s Encrypt.

  • June 2014

    Jekyll static site with a custom theme. I chose Jekyll because it’s pretty universal and produces a static site. Around this time, I also switched to DigitalOcean for hosting and an nginx web server.

  • February 2012

    I transferred my domain name to Namecheap. At some point, I switched to the Stacey CMS with a custom theme. I chose Stacey because it’s very lightweight and PHP was my primary language at the time. Hosted on Dreamhost with Apache.

  • September 2010

    Registered with GoDaddy and set up a homemade PHP website.