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
- Plugins. Every plugin API I sketched turned into a framework with worse documentation than the thing it extended.
- Client-side JavaScript by default. If a page needs script, you write the script tag yourself.
- 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