If Else V3: from Ghost to Hugo


3 minute read


It’s been a while since I’ve revisited the design of my site (pssstt. you’re here!). I was pretty happy with the second version of it, but felt like it needed a change. It’s overall design is still utilizing the Tufte-CSS project, which based on the work of Edward Tufte (a renowned statistician noted for his expertise and work around the presentation of data). I have a copy of The Visual Display of Quantitative Information and really enjoy the technical precision of his work as well as the overall aesthetic. It’s one of those books that I’m pretty proud to have on a bookshelf or coffee table. It’s a close as anything to what I want my writing to be — clear, beautiful, informative, precise, eloquent.

Tufte's work is full of interesting visualizations and meticulous analysis. I wonder what the book would've looked like if it had been originally published when D3 was around...But on reflection, things like D3 probably owe their heritage to Tufte and other's work, so who knows? Seems rather chicken-and-egg.

So, I wanted to keep the same overall look if/when I was to re-do the site. But why rebuild? I’d been using Ghost since basically the beginning of the site 2-3 years ago (crazy it’s been that long). I’d worked with Wordpress before quite a bit and was out of that world; didn’t want the trouble of working with WP themes, API, etc. anymore. Ghost was a great fit at the time and saw me through 2-3 years. I’d hosted it on Digital Ocean, AWS, and finally moved it to the Ghost paid platform. All in all, I was really happy with Ghost.

We regularly look at our spending patterns to see where we can be better stewards of what we have, and, frankly, we looked at the $30/month for Ghost and didn’t feel like it was worth the money anymore. This is not to knock the project or platform in any way. It’s a great project and served me well for many years. But fast static site generators like Hugo plus Github Pages made switching more plausible to me and cost only the time to build the site. The site doesn’t have the dynamic needs that something like Ghost would support, so once I had some free time and could find a way to port my posts over (I used ghostToHugo) I made the switch.

The process of switching over was actually really easy. I took an existing theme and used it as a jumping-off point to learn the conventions of Hugo. Once I was happy with where the theme was at, I got the site published on Github. Once I was reasonably happy with the production version and worked out a few minor kinks, I swapped over the DNS (using Cloudflare). Aside from a minor SSL cert hiccup (err_invalid_cert briefly, went away after a few minutes), the process was easy. Cloudflare’s DNS swap was really fast. Purged a few caches on Cloudflare and on my Cloudfront setup to ensure everything was starting fresh, and away we go. We’ll have to see how the end up showing the swap went, but from the implementation perspective the whole thing was relatively painless. Start-to-finish took about 4-5 hours of work spread over a few days.