Skip to content

stoop 1.0 — a static site generator with one opinion

Release notes, but honest: what it does, what it refuses to do, what broke.


stoop is a static site generator with exactly one opinion: content is files on disk, and files do not need a database in front of them. Version 1.0 is out today, three years and one complete rewrite after the first commit.

What it does

It reads a directory of Markdown and a directory of templates, and writes HTML. It watches for changes and reloads the browser. It has a single binary with no runtime dependency, and it builds this site — six pages, forty-odd notes, two hundred images — in about ninety milliseconds on the Newark box.

$ stoop build
  46 pages · 212 assets · 90ms
$ stoop serve --watch
  http://localhost:8480 (live reload)

What it refuses to do

  1. Plugins. Every plugin API I sketched turned into a framework with worse documentation than the thing it extended.
  2. Client-side JavaScript by default. If a page needs script, you write the script tag yourself.
  3. Config discovery. One file, one location, no cascade, no environment overrides.

A tool with one opinion is a tool you can finish reading.

What broke on the way to 1.0

The 0.6 template syntax is gone; there is a rewriter that handles about 95% of cases and prints a diff for the rest. Draft handling changed so that drafts build locally and are simply never written in a production build, which is what everyone assumed it did already. And the date parser no longer silently accepts three different formats — it accepts one, and tells you where the other two are.

Thank you to the forty-one people who filed issues against the release candidates, and to the one person who filed the same issue four times. You were right every time.

— O.P., FORT GREENE, 90 MS AND CALM