Alternate static site generators to Jekyll
Published: |
Updated:
| by Julian Knight Reading time ~3 min.
📖 Kb
| 📎
Development
| 🔖
Jekyll, Hugo, Static Site Generators
Jekyll is built on Ruby which is a pain to work with on Windows. It also doesn’t match my chosen development language of JavaScript. Here are some possible alternatives to Jekyll along with some strengths and weaknesses.
GoLang Based 🔗︎
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).
Node.JS Based 🔗︎
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
- ✅ Large list of plugins published on NPM & GitHub.
- ✅ Large number of contributors.
- ✅ Powerful.
- ❌ Complex to configure, lots of moving parts.
- ❌ An awful lot of “magic” happens! While the file system is reasonably well arranged it is very hard to reason about the logic.