Think Build Implement Repeat
London, UK +44 7367 067226
WhatsApp FOLLOW f in X
  1. Home
  2. Blog
  3. Single Tenant or Multi Tenant in a Custom Build
Custom Software

Single Tenant or Multi Tenant in a Custom Build

If your software serves several clients or business units, this decision shapes everything. The trade-offs, and how to avoid the expensive middle ground.

Updated 2 min readBy SpiderHunts Technologies

Free estimateNo obligation

Get a free estimate

Tell us what you need. A senior engineer reads every enquiry.

Takes under a minute. We never share your details.

  • Free consultation
  • No commitment
  • NDA on request

Prefer to talk? Book a free 30-minute call →

Quick answer — TL;DR

Multi tenant is cheaper to run and update, single tenant gives isolation and per-client flexibility. The expensive mistake is drifting into a hybrid where each client has a slightly different copy that nobody can upgrade together.

The short answer

If clients need the same software with different data, build multi tenant. If they genuinely need different behaviour, build single tenant deliberately and price for it. What you must avoid is one codebase quietly forking per client, because every update then has to be repeated and tested many times.

That drift is the default outcome if nobody decides, because each individual exception seems reasonable.

The trade-offs

Multi tenantSingle tenant
Running costLower, sharedHigher, per client
UpdatesOnce, everyonePer instance
Data isolationLogical, needs carePhysical, simpler to explain
Per-client customisationConfiguration onlyAnything, at a cost
Noisy neighbour riskRealNone
Compliance storyHarder to explainEasier

The compliance row is what drives single tenant in regulated sectors. Some clients will not accept their data sharing a database, whatever the isolation.

Multi tenant needs discipline

The risk is one client seeing another's data. That requires isolation enforced in one place rather than remembered in every query.

  • Enforce the tenant filter at the data layer, not in each query
  • Test explicitly that one tenant cannot reach another's records
  • Include tenant context in every log line for debugging
  • Watch for one tenant's load affecting others
  • Be careful with anything cached across requests

The first point is the difference between a design and a convention. A convention will be forgotten in one query eventually, and that is all it takes.

Configuration rather than forks

Per-client differences belong in configuration: enabled features, branding, rules, templates. The moment a client needs a code change, you have started a fork.

Where a genuine code difference is unavoidable, keep it behind a feature flag in the shared codebase rather than in a separate branch. One codebase with flags is maintainable; many branches are not.

The expensive middle

  1. A client asks for something specific and it gets built into their copy.
  2. Another client asks for something else, and the copies diverge.
  3. An update now has to be applied and tested several times.
  4. Nobody can say which version each client is on.
  5. The cost per client rises with every client added, which is backwards.

This is the failure mode to design against. It arrives gradually and each step is defensible.

Deciding

Ask whether clients need different data or different behaviour. Different data is multi tenant. Genuinely different behaviour, for reasons that will persist, may justify single tenant, priced accordingly.

And ask what your clients will require contractually. Sometimes the answer is decided by their procurement rather than by your architecture.

FAQ

Frequently asked questions

The questions readers ask us after this guide.

Still have a question?

Ask us directly — a senior engineer will get back to you.

Ask about your project

Is multi tenant less secure?

Not inherently, but the isolation has to be designed and tested rather than assumed. Single tenant makes the story easier to explain.

Can we start single and move to multi?

It is harder than the reverse. Retro-fitting tenant isolation to a system that assumed one client is substantial work.

How do we handle a client who wants something unique?

Configuration or a feature flag in the shared codebase. A separate branch per client is the pattern that becomes unmaintainable.

What about clients who demand their own database?

That is a commercial decision as much as a technical one. Price it, because it costs more to run and update.

Keep reading

More on Custom Software

Custom Software

When Off-the-Shelf Software Stops Fitting

Every platform is bent to fit eventually. The signals that you have passed the point where configuration is cheaper than a custom build.

Custom Software

Turning a Critical Spreadsheet Into Software

Most businesses have one. Why it survived, what it encodes that nobody wrote down, and how to replace it without losing the knowledge inside it.

Start here

Weighing up a custom build?

Tell us what you are trying to fix and what you already run. We will give you an honest view on whether custom software is the right answer, what it would involve and a realistic range. If configuring what you have would do the job, we will say so.

  1. You tell us what you needTwo minutes on the form, or a message on WhatsApp.
  2. A senior engineer reviews itAnd comes back with questions, a realistic range and an honest view on fit.
  3. Free 30-minute scoping callWe talk through scope, options and a realistic estimate — with no obligation.
Free estimateNo obligation

Talk to someone who builds this

Send a short brief and we will come back with an honest view and a realistic range.

Takes under a minute. We never share your details.

  • Free consultation
  • No commitment
  • NDA on request

Prefer to talk? Book a free 30-minute call →