One of the important factors in being a supervillain is that you need to be able to get your word out there. This can be for multiple reasons such as recruiting henchmen, drawing the ire of heroes, networking with other supervillains, and the list goes on. For an incipient supervillain such as myself, this comes in the form of my blog.

I have had multiple attempts at running and maintaining a blog over the years starting with multiple different Blogger sites. In fact, the first three posts of this blog were carried over from a Blogger site, to a self-hosted Wordpress site, and finally to this. Throughout my trials in blogging, I have always wanted the control of writing my own HTML/CSS, but also the convenience of content management that other solutions provide. I was dissatisfied with the customisability of the blogging solutions I was using and also how slow they were.

That is when a friend suggested Hugo to me. Hugo is a static site generator written in Go and features, well, a lot of features as well as speed. The blog post you are currently reading was generated by Hugo from a Markdown file (with some metadata) that I wrote in my favourite editor vim. However, instead of evangalising Hugo (and by extension static site generators) I thought I would share some numbers first.

Pagespeed Scores

Google provides the Pagespeed tool that allows you to score how rapidly a webpage is delivered to a visitor. For these scores I used the post “Devlog #4: Tempo” because it is the last post I uploaded to my old Wordpress blog, and it includes some images to load as well.

One thing to bear in mind with this too is that the Wordpress site is hosted on a shared Linux instance with Afrihost while the current site is hosted via Github pages. However, this is also one of the multiple reasons why I chose to use Hugo and host it via Github: uptime, speed, and cost.

Section WordPress Hugo
Overall Score 43 100
First Contentful Paint 4.2s 1.4s
First Meaningful Paint 4.2s 1.4s
Speed Index 8.3s 1.4s
Time to Interactive 7.4s 1.4s
First CPU Idle 5.1s 1.4s
Max Potential First Input Delay 100ms 20ms

The number pretty much speak for themselves, but that is not wholly why I fell in love with Hugo.

The Evangelical Stuff

With Hugo I get to use git for managing my site, and writing Markdown files locally is much more comfortable in vim that most of the online post authoring tools I have used.

You can choose to use a premade theme and adjust it yourself, or do what I did and write a theme from scratch. This allows you massive control over the look and feel of your site. My very first introduction to “coding” was a book my parents bought me on writing HTML and CSS, and since then I have always had a bit of a thing for writing my own sites from scratch.

Extensibility with Hugo is limitless especially with shortcodes and partials, but is also not necessary for running a very simple site. Hugo manages to strike an excellent balance between being simple enough for anyone to get started while being powerful enough for the more involved user.

While I have only begun to scratch the surface of what is possible with Hugo, I am already much, much happier with the workflow and I will admit, it has been a factor in my increased blogging lately.

So if you are looking to get the word out about your evil doings and schemes and want something simple, powerful, and open source I would highly recommend you give Hugo a… Go.