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.

Last reviewed 21 August 2026

Design choice

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 · CL-06

The stack

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 · CL-05

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 · CL-07

Trade-offs

What we rejected

01

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

Verified · CL-08
02

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 · CL-08

Process

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 · CL-09

Limits

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 · CL-34

Go deeper on the architecture

We will walk the stack, the trade-offs, and the ceiling with your team.