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-06The 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-05None 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-07Trade-offs
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 · CL-08We 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-08Process
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-09Limits
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-34Go deeper on the architecture
We will walk the stack, the trade-offs, and the ceiling with your team.