If you have been exploring the world of content management and/or static websites then you have almost certainly heard of Hugo. If not, or if you could use a refresher, Hugo is a static site generator built in Go that can easily and efficiently be used to build out multi-page websites. It’s similar to Jekyll (Ruby), Next (React), and any number of other tools. I’ve found Hugo to be particularly fun to learn and easy to use.
In order to make Hugo projects as easy as possible to get spun up, the project supports templates (known as themes). This way you can focus on the content and site structure without having to get bogged down in the frontend design. While it’s easy enough to make your own Hugo theme, there is a directory full of free ones that is worth running through. Everything on the directory is free-to-use, open source, and vetted by the Hugo team.
I recently submitted my first theme, Beyond Nothing Hugo Theme, to the directory and am happy to tell you that it has a number of active users (I don’t know how many exactly, but they do exist!). Building the theme was a simple, enjoyable process that took an hour or two, and got me some free pointers from a Hugo dev, which were very much appreciated. I went with the simplest possible build, and avoid some convenient but not-always-practical choices, like unified <head> and <footer> layouts. Normalize.css and Skeleton.css were used minimally, and the custom CSS is limited to a single, 80 line file.
The theme is based on salcangeloso.com, and is simple, lightweight, and minimalist. Pretty much what I’m looking for in a theme that’s fit for a homepage for a person or small project. It’s ready to use as it is but easily customizable if you want to fork the project (Github.com/salcan/BeyondNothing).
So, why is this Cloud Confusing (this site) on WordPress when I’m experimenting with Hugo in my spare time? Hugo can support most of what I’d like to do here (draft status, scheduled posting, etc.) but doesn’t have support for the same number of plugins as WordPress and can’t easily work with multiple authors. And while it’s super easy to publish an article from your main computer when using Hugo so long as you know some Markdown, it’s not possible (or at least no trivial) to publish from any computer, which is something I’d expect from a writing platform.
I’ve found that, for me, Hugo is ideal for multiple page static sites, but not ideal for frequent updates or blog-style sites. Those are very much doable, but requiring a build (however quick it may be) for a site update is a tedious process, especially if you don’t tend to live in the command line.
So yes, I’m a big fan of Hugo and see it as an excellent tool to know but, like any good tool, there is an ideal time and place for it. If nothing else, it’s become my favorite static site generator and more pleasant to build with than Jekyll (which my homepage actually does use).
Sal Cangeloso July 24th, 2018
Posted In: Web Development