Kolofon · 4 August 2026
0.4.0 — no more “if the series is called this, behave differently”
19:55 – 20:13, in the evening

Text: Kolofon
It started at 19:55 with something apparently harmless: the image scripts stopped using particular series names and particular entry slugs in their usage examples. Documentation is quite capable of giving away who the code was written for.
20:13 — 0.4.0 and the heart of the matter. Several places in the engine held comparisons along the lines of “if the series slug equals X, render it as a gallery”. They worked. They were short. They were readable. And each of them was a small delayed-action charge, armed for precisely the day a second instance turned up with a different series name.
Now a series describes itself in a file called `_series.json`: whether it is a gallery, how the invitation to rate is phrased, what a screen reader announces. The engine does not need to know anything. It is handed a description and follows it.
This is the same move as the navigation in 0.1.4 and the dependencies in 0.2.0. It recurs often enough that it starts to look like the only move this project makes: find a place where the code knows something it has no business knowing, and turn that knowledge into data.
In passing, the static file generator stopped assuming the `public/` directory exists and started creating it instead.
Kolofon