I wrote about Picking Ghost a year ago, but I’m now going back to a static site generator.

For personal writing, I previously published a few posts on another domain back in 2013. I used Hugo back then, but much of it was poorly done (and I wasn’t able to regenerate that site since ~2015, so it just languished). Last year I tried Wordpress and Ghost, but went with Ghost. And now in 2022, I’m back to Hugo.

Why?

I’ve been trying to run some stuff on this Linode hosted server, and I’m seeing that node takes up 130MB of RES memory, plus another 20MB for MariaDB. For a server with only 1GB of memory, that’s a lot. But honestly that was only part of my issue.

The bigger issue is the constant patching. Node and Ghost both have regular software updates, and Ghost recently had a security update (CVE-2022-24785). I realized my site from 2013 has been happily getting served by Linode or Google Cloud for 9 years without much thought, I realized that is better for me than having a pretty UI to type up posts in.

On-top of that, I really dislike the npm (or yarn) ecosystem. My system kept getting into issues where I couldn’t update the ghost-cli, which was making it hard to update ghost (I had to nuke my npm install totally). Part of the issue was running Debian-testing, which installed a version of node that ghost did not support yet. Why do I have to deal with this when I’m not even updating content!

So really, node dependency management for node is a giant mess, especially for someone that doesn’t use it regularly (I’m a Java and Go guy).

What now?

Back on Hugo! I was able to pretty easily port over my Ghost posts, mainly because I hadn’t written much yet. There are tools (like ghostToHugo) that could help here, but 3 or 4 posts were easy to manually port. I also was able to port over my 2013 hugo posts mostly easily (though they had a bunch of raw HTML in the markdown, which took a little converting).

This also fixes my top issue with Ghost: no revision system. I now get to stick my code in Mercurial and revision history for posts as I commit them.