Reader Mail: What Static Site Generator Would I Recommend?

Earlier today I received a message on Twitter from Rob Whitaker, and thought I'd reply publicly via a blog post, rather than a lot of threaded tweets.

Readers of my blog may know that for a couple of years this site was built upon Jekyll, but at the start of the year I moved to Hugo. I found Jekyll great at the time, but ~10 second rebuilds for single page changes were starting to take their toll and make me less happy to make changes to my site. With Hugo I'm building ~10000 pages on a clean build in ~5 seconds - that's quite a difference!

I asked a follow-up to Rob, to help answer better in terms of the preferred tech stack. This is because although I'd love to recommend Hugo to everyone, I realise that it's not going to be for everyone, and some folks may have a preference for what they want. For instance, folks using React quite often will likely want to use Gatsby or developers who work with Ruby every day may be more inclined to use Jekyll.

A good place to start will be Static Gen as they list all the different static site generators, with various bits of detail on it to help you compare.

On the Swift side, according to Static Gen there is Spelt which may be of interest in the meantime, but unfortunately hasn't been maintained in 3 years.

Next, it's important to know whether the person wants to build the theme themselves, or adapt someone else's:

In this case, Rob was happy picking up someone else's which is why I'd recommend Hugo as the Hugo Themes site is huge and includes so much, and it's possible to take any HTML template that may be produced elsewhere and tweak it for Hugo (this is true for any static site generator, mind).

This made me think that I'd recommend Hugo as a starting point just because it is so easy to get up and running, and requires only one dependency to work - Hugo itself! It's one that I find I always recommend because it's easy to use, incredibly batteries-included, and so fast.

There are quite a few accessibility-focussed themes, such as cupper which Anna has modified for her own means, but chose it because it was (at the time) a 100% accessible site to Lighthouse and was a really good starting point.

Hugo doesn't require you know anything about Go (I didn't, for instance), and requires very little practice with the templating language that Go uses if you want to tweak your theme. It's not something I knew before using it, and now only kinda know, and keep re-learning each time I change my theme.

One thing to be careful of is the Hugo documentation using lots of Go terms for functions, which can make it hard to search on the site if you're not able to get the specific terms.

Re Rob's comment:

I want something that needs as little maintenance as possible so I can concentrate on content.

I would say this is something that can be a tiny bit risky with Hugo, as they've not yet got a 1.x release, so there are still breaking changes released that may require some tweaks when upgrading, so be warned. But otherwise, it's pretty easy and I've not seen any burdens of using it.

But really, the only way I can say whether you'll like it is to try it. Build an out-of-the-box site with it, and see how easy it is to create new content for it. If the experience is nice, give it a go.

You can always try different ones for the editing process, but still publish to your existing site, while you're deciding on what tool to use.

I'd also recommend coming to a Homebrew Website Club: Nottingham to chat to others in the community, and get some time to try it out.

Written by Jamie Tanna's profile image Jamie Tanna on , and last updated on .

Content for this article is shared under the terms of the Creative Commons Attribution Non Commercial Share Alike 4.0 International, and code is shared under the Apache License 2.0.

#nablopomo #reader-mail #static-site-generator #jekyll #hugo #golang.

This post was filed under articles.

This post is part of the series nablopomo-2019.

Interactions with this post

Interactions with this post

Below you can find the interactions that this page has had using WebMention.

Have you written a response to this post? Let me know the URL:

Do you not have a website set up with WebMention capabilities? You can use Comment Parade.