Hugo to Wordpress. And Back Again

In the middle of 2022, my tech restlessness took over and I felt like I needed a change. It had been years since I looked at Wordpress in any serious way and I was curious to see what had changed under the hood there (answer: probably a lot if you’re using it as a CMS for a complicated site but as a lowly single blogger using it for personal writing, not a lot!). Plus, there has been a bit of movement in terms of using sqlite as a WP backend which feels like a pretty great step forward to me? So over the course of an evening, I moved my blog from Hugo back to Wordpress. I stayed on there for about 14 months, switching back last week. Let’s talk about the experience.

The WP ecosystem is great. Apps like MarsEdit make it so easy to interact with your blog - uploading images and dropping them into a blog post is very straightforward. Having a client on my phone meant that I could write and publish blog posts from anywhere. And the organisation of posts inside of Wordpress is incredibly simple. And the search! Oh my goodness, so great. Loved all that.

But the spam is unreal. Wordpress is basically unusable without an Askimet account to scan every comment. And even using sqlite as the backend and not running an entire MySQL server for my extremely low-traffic blog felt a good bit safer, every interaction is still run through PHP which is still way more of an attack vector than I’m comfortable with (if you want to spike your anxiety, try Vladimir Smitka’s WordPress installer attack race where he documents a Wordpress blog being compromised during installation 😬).

Writing and publishing on Hugo, on the other hand, is much slower and more convoluted. Let’s be generous and say it’s “deliberate”. There’s no phone client that lets me publish blog posts from wherever (not that I ever actually did that, but it was a nice option to have). Publishing can only really be done on a computer1. Want to embed an image in your blog post? You need to handle the resizing yourself, upload it to a static folder, then figure out the magical markdown incantation for referencing the image, but remember to remove the static part from the URL you put in because that gets stripped when the files get published. The whole thing is actively user-unfriendly.

But what you get in return is content that is truly yours. It’s not stored off in a service on another computer somewhere, where you pray you have a decent backup system. The files that make up this website are on my computer, and my computer is automatically backed up on my NAS. And I keep everything in a private GitHub repo as well for triple redundancy. And because everything is just markdown files, it’s dead simple to just display this image differently if you want. For example, my reading/ section is just markdown files, same as the main part of my blog. It’s just rendered differently there because Hugo makes that so simple.

And let’s be honest, the stuff I’m publishing on this website isn’t exactly breaking news, so maybe I can afford for the process of getting things written and published to be more deliberate. In fact, it’s something I’d like to aim for. Something that struck me while copying across the blog posts I’d made in Wordpress back into Hugo was how not-deliberate my writing was. I’d bang something out without a second thought and maybe, maybe go back and fix any typos I spotted (but mostly I did not).

Anyway, my point here is that Hugo isn’t perfect but it’s pretty great for my needs. Are you reading this, future-John who is currently thinking about moving off to something else? Say it with me: Hugo is pretty great for my needs.

  1. Obviously this is a giant generalisation - for example, prior to moving to Wordpress, I was running a build pipeline in a locally-hosted Jenkins that would detect any changes to my blog’s GitHub repo and automatically build and deploy the Hugo site. So it can be done, but this is a whole step beyond what most people expect from software in 2024. ↩︎