md2blog

A zero-config static site generator for dev blogs

Why not just use X instead?

There are hundreds of static site generators. Why make yet another?

The short answer is that none of the static site generators I tested out did what I wanted out of the box (or required too much setup).

The most common issues were:

Here are some specific notes on popular SSGs:

Jekyll

Jekyll is probably the closest to what I was looking for, but I had no interest in setting up a Ruby environment or learning about the language (in case I needed to author my own plugins). I also didn't like the verbose syntax of the Liquid template language.

Hugo

Given that Hugo is broadly used and ships in a convenient single binary, I thought I would end up using Hugo. Unfortunately, it was too general, and it wasn't obvious how to go from a blank repository to a dev blog. Hugo's template language was also the most unintuitive template language I ran across during my research.

Pelican

Pelican seems like "Jekyll in Python", but I honestly didn't seriously consider it because I've had so many compatibility issues with Python in the past, that I generally try to avoid Python entirely. I realize I'm in the minority on this, but any language that practically requires virtual environments due to breaking changes seems too fragile for my delicate constitution.

Eleventy

I actually started out using Eleventy because it was very simple and easy to understand, but I ended up preferring Metalsmith (on which md2blog was originally built) because Metalsmith was even simpler, to the point that I could easily understand everything it was doing, instead of having to guess.

Metalsmith

I originally used Metalsmith for md2blog, but the dependency tree quickly grew out of control and recent security incidents on NPM made me wary of using so many packages from contributors I didn't trust.

Gatsby

I wasn't interested in Gatsby because I don't want to run a bunch of client JavaScript to hopefully speed up subsequent page loads. Perhaps I'm being unreasonable, but I want a static site generator to spit out HTML, not a web app.

Hexo

Hexo sounds like it might be a great static site generator, but by the time I gave it a serious look, I was already building on Eleventy (and later Metalsmith), so I didn't investigate Hexo further. I realize this isn't a great reason for skipping Hexo.