We take security seriously — and we will show you why
Household arrears. Children’s race times and consent records. Employment histories. We build systems that hold data with real consequences attached, so here is the position plainly: we hold no SOC 2 certificate of our own, and a firm our size claiming one should give you pause. What we can show you is who is accountable for the infrastructure beneath your system, what we do in the code, and how we handle consent.
Where your data lives
You are told the region before you commit, and it goes into the agreement — it is not something you discover afterwards. Data is encrypted at rest and in transit, on infrastructure certified by the providers below.
Residency is a decision we take with you. Some clients need their data held in Kenya; others are content with EU hosting under standard contractual clauses. We will tell you what the Data Protection Act 2019 asks of you as the controller, and what it asks of us as the processor, before anything is signed rather than after.
- VercelSOC 2 Type 2 · ISO 27001:2022Hosting and deploys
- NeonSOC 2 Type 2 · ISO 27001:2022 · ISO 27701:2019Postgres, encrypted at rest
- SentryError monitoring in productionWe see failures before you report them
These are our providers’ certifications, not ours. They tell you the floor is solid. What we build on top is the part to judge us on.
What we actually do
✓Authorisation on the server
A check that runs in the browser is a check the browser can be told to skip.
✓No passwords to leak
A one-time code to an address you already hold. Nothing to circulate or rotate.
✓Nothing secret in the bundle
If it ships to the browser, assume it is public. So we do not put it there.
✓Restricted data is never sent
Not sent and then hidden — not sent. The payload is built by omission.
✓Rules in the database
Constraints and indexes, so a bug above cannot write the impossible.
✓An exit that works
Full export on request. A system you cannot leave is one you should not buy.
How we hold consent for children’s data
On the swim club build, every guardian’s consent is stored against the version of the document they actually saw, with a timestamp. Change the wording and everyone re-accepts before they reach the dashboard; the earlier acceptance stays on record rather than being overwritten.
Purpose limitation is enforced in the code, not in a policy document. Competition results and coaching assessments are separated by a manifest, and a test fails the build if a single field is left unclassified. At the gate product we do not collect ID numbers at all — it is the field that turns a breach into a serious problem.