Hugo - By far the best I’ve found out of all possibilities. Although I don’t know Go, with Hugo, I only need to know a few basics and I don’t need to install it.
- ✅ Can use YAML configuration and Front Matter like Jekyll does. (TOML also supported)
- ✅ Simple initial set-up. A single executable is everything required. Although Hugo is based on GoLang, it is packaged into a single executable for those who don’t want or need to mess with Go itself.
- ✅ Being able to easily run the build locally means full access to any error messages.
- ✅ Executable has a development server built in.
- ✅ Supported by a number of free, cloud-based deployment and CMS tools such as Netlify and Forestry.IO.
- ✅ Easily handles both page- and post-based sites and combinations of both.
- ✅ Active and helpful online community, regular updates.
- ✅ Lots of automation hooks available such as multiple output types for generating alternative forms of data.
- ✅ Simple integration of data-driven outputs.
- ✅ Relatively simple to generate new themes. I built a new theme from scratch in less than a week of casual, out-of-hours writing.
- ❌ Logic and flow can be complex to comprehend and reason about. Usually takes several readings of the documentation to work out how to do things if it isn’t immediately obvious.
- ❌ Use of GoLang as the underlying code language results in distinctly non-standard structures for templates.
- ❌ Some of the built-in templates and shortcodes are hard to understand without digging through the Hugo source code as they are poorly documented.
- ❌ The speed of change of Hugo can result in documentation lagging behind the actual code. (Generally, the key contributors do a good job of keeping up though).
All of this list use Node.JS to underpin the generation of static pages.
Hexo - seemed promising at first sight. But a quick dig through the impressive list of addins reveals many of them to be out of date or not working properly.
- ✅ Uses YAML configuration and Front Matter like Jekyll does.
- ✅ Large list of plugins, all published on NPM.
- ✅ Simple initial set-up.
- ❌ Many plugins out-of-date or not fully working.
- ❌ Many plugins very poorly documented or documented in Chinese.
- ❌ Does not handle page-based sites well. Focussed on blogging (posts).
- ❌ Needs plugins to provide more rounded capabilities.
Gatsby - Complex but comprehensive