Contents

Migrating to Hugo

A journey from WordPress to Hugo.

Contents

When I started this blog in 2013, I wasn’t really planning to. A friend convinced me to keep a place of technical musings and such. Sure why not.

Over the years, it grew to include photos and other non-technical posts, such as Matt’s movies you may have missed or my GTD process.

While I enjoy writing these posts, they do take some time. However, writing posts hasn’t take as much time as site maintenance. Initially in 2013, I picked WordPress because it seemed like a mature low-touch well supported software suite, and it is.

Being the most popular blogging tool, WordPress also comes with challenges, such as defending from XMLRPC attacks. On top of security issues, WordPress runs on a traditional LAMP stack. (A few years back, I switch from Apache to Nginx.) Trying to squeeze MySQL and PHP on to a low cost VPS with limit memory proved challenging. I had gotten quite good at it, as I had to move this blog across, IIRC, 4 different providers, for various reasons. The sprinkles on this suck salad being I had to rebuild the site twice, thankfully with backups, because the providers parent Hypervisor died.

With all of the above, I have been long past done with WordPress for a while.

In the course of my usual wandering around the Intertrons, I happened across Jekyll a static site builder in Ruby. Awesome! I started messing around with converting this site. As I worked with Jekyll, I found Hugo and Gatsby. Hugo being written in Go and Gatsby being JavaScript. I chose Hugo because I am learning Go. Actually, it was because it had the most stars on GitHub. 😂

There are various tools to export your WordPress posts and convert them to Hugo/Jekyll markdown. This did the bulk of the work, but each post needed TLC. Fortunately, being flat files sed was SUPER useful here. All said and done, it took a dozen hours of effort to migrate the site. A good portion of that being getting an understanding how Hugo works.

I must say, I am overjoyed to have the content in a VCS, as well as, the speed improvements flat files brings. Having a local development environment to test against is also a massive win.

Now lets see if I can start blogging more. 🤔