How to pick? By popularity, language and template used.
I would like to pick one by popularity, because a bigger community behind it would means more tutorials and answers, more themes and plugins, and more likely to be supported in the long run.
You can check StaticGen for popularity based on github activity.
List of top 10 static site generator would be
- Jekyll - Jekyll is a blog-aware, static site generator in Ruby.
- Hugo - A Fast and Flexible Static Site Generator built with love in GoLang.
- Hexo - A fast, simple & powerful blog framework, powered by Node.js.
- GitBook - Modern documentation format and toolchain using Git and Markdown.
- Gatsby - Blazing fast static site generator for React.
- Pelican - Static site generator that supports Markdown and reST syntax. Powered by Python.
- Metalsmith - An extremely simple, pluggable static site generator.
- Brunch - Fast front-end web app build tool with simple declarative config, seamless incremental compilation for rapid development, an opinionated pipeline and workflow, and core support for source maps.
- Middleman - Hand-crafted frontend development.
- Nuxt - Versatile Vue.js Framework.
Usually the most popular would be the pioneer in the field, which means it probably have the most features, tutorials, plugins and themes. The downside might be more technical baggage: confusion about tutorial doing the same thing with different version, and some material might be outdated. New comer might have learned from the pioneer to simplified the process or come up with better ways to do things.
Language is important
It’s important to note which language the static site generator is written in, as you need to deal with setup of the development environment and installation of packages. You might want to pick a static site generator based on the language you are familar with.
Jekyll is developed in Ruby, so you need to setup full Ruby development environment, install RubyGems and familar with gem command to installed various packages.
To use Hexo, you would need to install Node.js and Git and familar with npm command.
Hugo is an exception. Though it’s written in Go, you don’t have to setup Go environment or know any Go command or tools. Hugo is compiled as a binary so you only need to install the executable.
Template is important
It’s important to note which template and language the static site generator is using, as you will spend a lot of time customizing you website by modifying the template files. You might want to pick a template language you are familar as you need to learn the declaration, syntax, functions, variables, etc.
Templates used by various static site generator:
- Jekyll - Liquid
- Hugo - Go Templates
- Hexo - EJS, Pug
- GitBook - Jinja2
- Gatsby - React.js
- Pelican - Jinja2
- Middleman - ERB/Tilt
Static site generator for web programmer to shorten learning curve
After going through the learning curve of using Hugo, I was thinking what if there is a static site generator for programmer using language, framework and template they are already familar with.
For example, I am familar with Python, Flask and Jinja. It would be nice if there is a static site generator using such stack. Indeed there is Frozen-Flask, but I have yet to give it a try. I thought of rolling out my own implementation, but it will probably be a bad idea since I don’t use static site generator that much.
For Django, there is Cactus. Didn’t find any which utilize Ruby on Rails.
If you are already a web development, why use a static site generator?