Which static site generator should we use?

  • Page Owner: Not Set
  • Last Reviewed: 2018-09-05

We're looking to a static site generator for Corey to use for a project. We're also looking for an alternative to what we used for the Accessibility Site.

Here are my requirements:

  • HTML template authoring should be simple. The idea is to have actual HTML with something like {{ page.title }}.
  • The static generator shouldn't need much more than templates to create a functional site. The system should be authorable by anyone and updates to templates should be possible by any front-end or back-end dev.
  • The static generator should work locally on Windows, Mac, and Linux and should be easy to set up and get running on each.
  • The generated assets should be HTML, CSS, and JavaScript only. No requirement for the server to run PHP, .NET, Ruby, Node, etc.
  • The site shouldn't require JavaScript to run. Yes, parts of the site may require JS but the entire site shouldn't fail without JavaScript.
  • The generator should be "actively" updated. Anything that hasn't seen an update in years is a no go, IMO. I don't want to tie our horse to something that won't be supported later.
  • The work put into it should be easily ported into a new static site generator without too much work (this is one reason why I'm trying to avoid JavaScript frameworks).

What I've tried so far that don't quite meet my requirements:

  • Gatsby - You have to know React, requires JavaScript.
  • VuePress - You have to know Vue to build components, requires Javascript.
  • Hexo - Uses Node to generate static assets. It's been years since an update so I'm wary of using this.
  • Jekyll - Requires Ruby to run on the server. I honestly didn't look much further than that.

Currently I'm leaning towards using Hugo, which surprises me honestly. The templating system is similar to Twig, which is what we use currently. Authors can easily add Markdown files that are added to the site. It's blazing fast. My concern is using Go, is this viable on all 3 OSs?. There's documentation for setting up on all three OSs but is it easy for all three to set up?

Comments

  • Another note on this. I'll port the HTML, CSS, and JS from the Blend Accessibility site into whichever choice we land on so we can easily implement these static sites as needed.
  • Jekyll doesn't require Ruby on the server. Also, it looks like Hexo has had much more recent commits than what you were seeing.
  • I don't have an answer for you, but I would like to weigh in on not wanting one what assumes vue or react if possible.  There are a couple more I know I can build easily that aren't listed here, but don't know a ton about them: hyde, metalsmith, pelican, harp, brunch, nikola. I'd generally prefer something where we'd use languages we already are using, esp. javascript in general.
  • I like your list of requirements. It may be obvious, but something that isn't too prescriptive with theming is important too. If it fights with Bootstrap or some other framework we need/want to use, that is a big downside. Hugo looks interesting. And FWIW: https://themes.gohugo.io/hugo-bootstrap/