Technology

What we run on, and what happens if we are wrong about it.

Every component below is open source or an open standard. You could run all of it without us.

The exit strategy came first

When we adopted our current runtime we wrote down the conditions under which we would replace it. That exit strategy was recorded at the moment of the decision, not afterwards.

VERIFIED · 2026-07-27

The six technologies

We run on PostgreSQL for data, Node.js as the application runtime, and Docker with Docker Compose for packaging and deployment. Source control is Git, dependencies are managed with npm, and an automated test and release pipeline runs before anything ships.

VERIFIED · 2026-07-27

  • PostgreSQL

    Data

  • Node.js

    Application runtime

  • Docker with Docker Compose

    Packaging and deployment

  • Git

    Source control

  • npm

    Dependency management

  • Automated test and release pipeline

    Runs before anything ships

None of these locks us in. Standard SQL, an open container format and an open-source runtime mean the cost of moving is real but bounded, and it is ours to pay rather than a vendor's to set.

VERIFIED · 2026-07-27

What we rejected

  • We rejected a free hosting tier because its licence prohibits commercial use. We found that during verification, before it reached anything.

    VERIFIED · 2026-07-27

  • We rejected a log-retention assumption because the retention we had designed for was not available on any plan without a paid add-on. The design assumed it; verification showed otherwise.

    VERIFIED · 2026-07-27

How we decide

How we decide: every adoption is recorded with its reasoning at the time it is made, and every rejection is recorded the same way. The register of decisions is the method.

VERIFIED · 2026-07-27

A stated ceiling

Our current deployment runs on a single host. That is a deliberate choice at this stage and a real ceiling; we have not built the orchestration that would remove it.

VERIFIED · 2026-07-27

Last reviewed 25 October 2026.