This blog started out on GeoCities sometime during the dot-com bubble. Somewhere along the way I moved it to a proper hosting provider (first guest-hosting.ch, then Rackspace), acquired a .name domain, and set up a custom WordPress installation.

This setup was flexible, but meant I had to stay on top of security updates for WordPress (until automatic updates were introduced), remember to update the packages installed on the server (Ubuntu) once in a while, and deal with occasional comment spam. Also, page load times weren’t great (even with various caching plugins), since the site was being served from a low-end virtual server, which nevertheless cost me about $10 a month.

This made going back to serving simple, static files an attractive option. GitHub Pages was an obvious choice for hosting the site, since I already had several projects on GitHub. I’d also need a static site generator to create the web pages from the Markdown files I exported from WordPress:

  • Jekyll would have been the default choice, since GitHub Pages has built-in support for Jekyll. But I wanted to be able to build the site on my own machine as well, and that turned out to be painful to set up, and very slow.
  • Hugo appeared to have most of the same features, and was much faster.
  • Hexo seemed fast enough, and easier for me to customize than Hugo.

I ended up creating a custom theme for Hexo based on this theme.

Screenshot

Since switching to serving static pages, I no longer need to worry about security updates. Pages are served fast (UptimeRobot reports response times of well under 100ms). I do miss having a bit more control (like being able to change the cache headers), but so far so good…

You can see the source code for this site here (the source itself is in the main branch, and the generated pages in the gh-pages branch).