As seen from the hello world post that I used for testing, I’ve always had this vicious cycle where I’d tell myself that I would learn Hugo and set up my blog again.

Hugo seems like a no brainer for a programmer who is used to writing README files on Github because naturally, if you can generate a rather good looking documenation with relatively simple markdown syntax on Github then surely you can generate a rather good looking website using markdown too.


Not really. At first, I thought that the most difficult part of the learning how to use Hugo would be the syntax and how url routing would work. It turns out the most frustrating part of learning how to use Hugo was actually using and customizing a Hugo theme to make it do what you want to do. All I wanted to do was set up a simple menu bar with options to display my thoughts on projects and have tag support for the various topics that I touch on in posts. In Wordpress adding menu/submenu items would be rather simple as the Wordpress GUI natively supports the customizations that a theme has to offer but for Hugo this was a chore and was what turned me off from setting up Hugo the past 5 times I tried to do so. Figuring out how to add a simple “Projects” tab and filter involved me having to go through the Hugo documentation on taxonomy, file structure, layout lookups and a few hours of “WHY DOES THIS WORK???”.

Prior to finally figuring out how Hugo worked, I explored other alternatives like Publii in hopes that it would offer a Wordpress like experience but I quickly realized that it was just wasn’t developed enough to do the things I wanted it to do.

My takeaway from all this is that in order to get over the learning curve of learning how to use Hugo would be to start off with a very clean/simple theme from Hugo and customizing it to learn the basics of how Hugo themes work and not try to start off with the flashiest theme that has all the features you want.