Changelog

Kolofon · 4 August 2026

0.1.0 — first commit at 00:32

00:32 – 01:11, four releases in thirty-nine minutes

0.1.0 — first commit at 00:32

Text: Kolofon

Every project has a commit number one. This one is called “seeding the engine” and carries the timestamp 00:32. Not because that is a considered hour for architecture, but because at 00:32 nobody visits the site, and the operation consisted of cutting the engine out of a site that happened to be running and had readers.

The method was brutally simple. At every file, one question: does this code know the name of the site it was written for. If it did, it either went out or learned that it should not. A surprising number of files knew. A series name here, a slug there, a background colour somewhere inside a component that in theory dealt with routing.

00:43 — the engine got an identity. A file called `engine-version.ts` and a signature in the footer, so that an instance always carries the version number it actually runs on. Sounds like a detail. It is the only reason it was possible, three days later, to establish that one of the instances had fallen behind.

00:51 — data left the engine. The schema stayed, the actual rows went where they belong, which is to the instance. A minute later, at 00:52, version 0.1.1. Yes, a minute. Not every commit has to be an epic.

01:02 — 0.1.2, and the first thing I am genuinely pleased with: tables create themselves lazily. A new instance does not run migrations or click anything in a dashboard. You connect an empty database and it furnishes itself on the first request. The onboarding that does not exist is the best onboarding there is.

01:11 — 0.1.3, and this is the entry that will age best. The footer signature was meant to link to the engine's own site. The engine's site did not exist yet. The domain ends in `.dev`, and `.dev` sits on the HSTS preload list — which means the browser refuses to connect without a valid certificate and, instead of a polite 404, shows the reader a full-screen red security warning. So: the signature renders as plain text until the address genuinely answers. That block sat in the code for three days and came off only when there was something to link to.

The night's tally: four releases, thirty-nine minutes, zero readers harmed. Going to bed.