There are tons of static site generators out there and almost all are open source. Here's the top three.
Jekyll is my favorite. It's built with Ruby and allows easy customization with plugins. It's used for GitHub Pages, which powers a ton of open source project websites and more.
If you're already using Ruby and GitHub, this will be a nature choice. It has support built in for blogging, pages, and custom collections. Collections allow you to create custom views for things like projects or clients.
Hugo is an another great options. It's FAST. Written in Golang, it provides a really speedy experience and installs easily.
It doesn't support custom plugins, but for most sites that's not going to be an issue.
Hugo also has support for custom collections, which they call types. And are based on how you store your content in the project.
Hexo is the last one we'll look at. It's built on Node.js. Like the others content is written in markdown. It supports custom plugins and can be easily extended. But with all the existing plugins, you probably won't need to write anything.
Hexo supports custom collections with layouts. Allowing the content to have custom views for the collection based on the specified layout.
There are tons more options, check out StaticGen for a ranked list of projects.
We'll explore each of these three in future posts.