Journey to Hugo

Jun 30, 2021

This is a very opinionated blog post describing, why I chose Hugo for my blog. I have no intent on hurting or producing wrong facts about whatsoever, also not trying to praise one over the other.

Started with Jekyll

Initially, I just wanted a blog to share my knowledge! I was in the middle of my career and didn’t have enough time to actively write posts. So, I had done some research and stumbled upon GitHub pages for hosting and Jekyll as static site generator.

I have even written two parts of how to set up and create a Jekyll based static site. I did have a rough time, trying to start everything from scratch, a lot of googling, a handful of gotchas!, filled with fun and frustration.

Jekyll, was a nice option to begin with, and it required ruby to be installed in my machine, which created problems when switching to a new OS or machine had me sit and re-setup the whole Blog Setup.

Not only that, I wanted to try out ReactJS, so I was exploring other options and fell on Gatsby.

Sneaky Gatsby

At first, interestingly, I was much involved in porting things to ReactJS using Gatsby.

Gatsby’s plugin system, made the work easier. I had my blog and site in Gatsby for over a year, without any trouble.

Instead of actively writing blogs, I did spend very little time for it and thus every time, I try to work on a blog post, Gatsby had a new release and sometimes the NodeJS dependencies too. Upgrading and Updating seemed to be easier at first, after a long gap (probably months), it became a nightmare for me to look after the maintenance.

So, I had left the maintenance of the blog and started looking out for alternatives.


At first, Hugo looked daunting as it was using Golang, which I had no idea about. My opinions about it stand corrected as Hugo main programming language is Golang, still the users can use Hugo CLI alone to manage the blog without having to depend on too much of Golang.

Initially, everything was confusing and documentation seemed to be a chaotic, which I commonly refer to as DEVELOPER'S CURSE. Once again I had to do a lot of googling, which helped me understand what is what in HUGO.

Once, I got a hold of it, I was able to easily relate to certain things. HUGO has options to include preprocessors and other NodeJS related stuffs. For me, I decided to keep things dead simple and choose Bootstrap 5 over Tailwind CSS.

K.I.S.S Principle

After a lot of time, I realized, my time should be spent on writing meaningful blog posts and not in presentation.

So, If you’re like me, try to remember K.I.S.S Principle, because anything that takes too much of your energy, is not worth it.

I did port the site from Gatsby to Hugo in approximately 4 to 5 days. My decision to stick with plain old Bootstrap helped me quickly get the site up and running. Also, I had to learn a bit of Golang for managing HUGO.

Alas, Hugo has a binary release, so I don’t have to depend on any other dependencies.

   jekyll (3) , gatsby (1) , hugo (1) , static-site-generator (3)