Blog now powered by Jekyll
I have been running this site on wordpress since 2008.
I think I started out on a surprisingly-not-yet-defunct shared host, virtualave.net, which I had been using probably since the late 90s for some other hand-coded HTML websites, Joomla and Drupal installations, goofy flash-based navigation with 1 minute intro animation accompanied by some Santana song, and so on.
Then I moved to site5, another shared webhost that is apparently still hanging on, and also seemingly owned by the same web.com group that owns virtualave.
Site5’s offering, IIRC, included the ability for me to act as a shared hosting reseller of sorts, which I did for a few friends and small businesses I was contracting for. I could configure disk and bandwidth quota for my sub-accounts, give them dedicated phpmyadmin and FTP access, and so on.
- Then at some point I was running it on Digital Ocean.
- Then later on Scaleway, which was slightly cheaper. I was also running my own mailserver here (do not recommend) and DNS server (sort of recommend?).
- Then I moved to wordpress.com because I was sick of administering mysql + php + php-fpm + wordpress + apache/nginx.
- Wordpress.com unfortunately felt like wearing a bit of a straightjacket, having been used to the freedom of running my own wordpress installation for so long. It was nice not to worry about php upgrades, but not nice to not be able to install plugins, or have to use the new wp block editor.
Just recently, I was about to move to Contabo, which I am currently using for a couple other services and have been happy with despite being much more barebones than Digital Ocean or Scaleway, but decided I still really didn’t want the headache of administering all that software for a rarely-updated, low traffic blog.
Instead I thought I’d give the world of static site generators a try, since they seem to promise a very simple developer experience.
Currently I’m using Jekyll to generate the HTML based on markdown files, with a tiny bit of custom plugin code. All of the blog content and code is stored in a Github repo, which is connected to Cloudflare pages. Whenever I push to Github, it kicks off a new build of Jekyll and the changes are live within a minute or so. I have been using this process for about a year with another project, and so far it has been very smooth sailing, not to mention free, due to the fairly generous Cloudflare Pages free plan.
I could have just set up nginx somewhere and had a script to FTP or rsync files after running jekyll build
locally but I have very little desire to run websites like that any more. I strongly recommend that anyone who
considers themselves to be any flavour of professional web developer do play that game for a couple years, until they have felt the pain of it, since it has been a great learning experience, but I feel I have
learned most of the lessons I want to learn from that practice.
I spent approximately 30 minutes choosing amongst the dozen or so static site generators that have moderate developer mindshare.
- Gatsby “loads JSON from GraphQL, and merges that data with components to create HTML pages”. I’m sure there is a good reason for doing that, but that seems antithetical to my desire for simplicity. Really, there was almost no way I was going to use any javascript- or typescript- based tool here, just because my experience with specifically the DX of building, maintaining, and deploying those applications over the last 8 or so years has been uniformly unpleasant (note that I don’t mean writing in those languages is unpleasant; I increasingly enjoy the typescript I write at work, though I still find the standard library disappointing).
- Hugo written in golang, looked interesting, its main claim seems to be speed. “At <1 ms per page, the average site builds in less than a second.” Given that I’m going to be building my site maybe once a week at most, even if it was 10x that I don’t really care…
- …And it turns out with Jekyll that my site builds in about 1.5 seconds and does a hot reload in slightly less than that. Plenty fast enough, and I get to use ruby, which is still the language I enjoy most out of all that I’ve written in. The templating language is familiar to me, and writing plugins seems to be fairly straightforward.