Multi-tenant platforms
Isolation, per-tenant configuration, billing and scaling done correctly.
- Engagement
- Architecture-led build
- Typical timeline
- 16 weeks
- Starts with
- The number of tenants you expect in year one and the biggest one you hope to win.
One query written without a tenant filter can end the company. Every other requirement here, per-customer branding, separate limits, independent restores, is a choice you can revisit later; isolation is the one that cannot be added cheaply afterwards.
One codebase serving thousands of accounts safely.
What we build
Concrete artefacts, handed over and documented.
The isolation decision, written down: shared tables with enforced row-level rules, a schema per tenant, or a database per tenant, and what each costs to run
Tenant-scoped data access enforced underneath the application, so a forgotten filter fails rather than leaks
Per-tenant configuration, features, limits, branding, custom domains, held as data an operator can change
Tenant lifecycle: provisioning in minutes, suspension, export, and permanent deletion that is genuinely permanent
Backup and restore proved for a single tenant, not only for the whole database
Noisy-neighbour controls, so one heavy customer cannot slow down the other two hundred
What changes
The isolation question in a security review is answered with a document instead of a promise
Onboarding a customer becomes an operator task measured in minutes
One customer can be restored, exported or removed without touching anyone else’s data
How it runs
01Isolation model
We choose the tenancy shape against your compliance obligations, your largest expected customer and your infrastructure budget.
02Platform build
Data layer, provisioning, per-tenant configuration and custom domains, each shipped with tests that try to cross the boundary.
03Drills
We provision, suspend, export, restore and delete a test tenant while the platform carries live traffic.
Chosen per project. Named here so you can see the shape of it.
- Postgres
- Supabase
- Prisma
- Terraform
- Cloudflare
Questions we get asked
Tell us the outcome, not the tooling.
Send us the situation you are in. We will tell you which discipline it belongs to, what we would do first and what it costs, including when the answer is to wait.


