At this point, the Hugo version of www.vegard.net you’re currently looking at is a very scaled down version of the WordPress site. The only content I’ve moved over in this first iteration of the migration process are the posts. All the other features, like the basic stuff like the about page, are still being hosted by WordPress. Even the posts themselves aren’t in the same state as they were on WordPress.

Galleries, for instance, are broken in many of the posts, and will continue to be for a while. Also, there isn’t a single responsive image anywhere now. This means that, in many cases, the original, full resolution version of an image is used. I sincerely hope you’re not browsing the site a lot with an expensive, metered cell phone subscription. I’ll eventually get around to fix all of this, but going through the old post is a slow process. As of right now, I’m about half way through March of 2019 - and I’m moving backwards towards my very first post from 2000.

A this speed, I suspect I might have moved everything from WordPress to Hugo by the summer of 20211.

My Hugo Workflow

So far, I really enjoy working with Hugo. It’s lightning fast, both when serving the site locally during development, and when building the public version that goes online. The theme templates aren’t what I’d call intuitive, but the main reason for that is probably my lack of experience with Go. I’m slowly figuring out how to do stuff, and at this point I’m at least capable of making minor modifications to third party themes to make them behave the way I want.

My workflow when using Hugo is very different than how it was with WordPress. Using the latter, everything was handled with WordPress. I used the built-in Gutenberg editor to write, dragged and dropped images into the post, previewed everything, had a plugin that checked the readability of the post, made sure everything was all right in the metadata and SEO department, and finally hit the publish button. Then WordPress made sure social media sites were notified, sent out e-mails to subscribers, and kept track of the odd comment and the visitor statistics.

All of that is pretty much gone now.

Today I’m using Visual Studio Code to write the posts. With a couple of Markdown plugins and a spell checker installed, it does the job. I’ve got Hugo running in the background so that it builds the new post as I write, making it very easy to see how it will look when it’s published. When I’m finished with the post, I commit the Markdown file to Git, and then push my local changes to a remote repository.

I’ve set up a Jenkins CI server on VBOX. On Jenkins, I’ve configured a simple pipeline that pulls from the remote Git repository, builds the site with Hugo if there are any changes, publish everything to Apache2 with rsync, and then sends off an e-mail to let me know that the site has been published - or that everything crashed and burned spectacularly. I’ve just started using this particular workflow, and so far it looks very promising.

Onwards and Upwards

As I’ve pointed out several times already, there is still a lot of work to be done before I’m rid of WordPress. I’m not sure what to do with post comments, visitor statistics, social media site notifications, e-mail subscribers, the ActivityPub integration, and all the other features I’ve filled the WordPress version of the site with over the years.

Is the WordPress to Hugo migration really worth it? I honestly don’t know. But playing around with something else than WordPress has been very refreshing, and I’ve barely scratched the surface of Hugo is capable of.

Here’s to the road ahead!


  1. With the way the financial market is looking because of the COVID-19 pandemic, I might suddenly get a lot of free time on my hands, however. ↩︎

  2. When I eventually turn off WordPress, I want to move to something more lightweight than Apache. Maybe Hugo can serve everything? ↩︎