The trade-offs behind a single-tenant CRM
A database per client isn't a free upgrade. It swaps one set of costs for a stronger set of guarantees.

The short answer
- Single-tenant means a separate database per customer. In total, it generally costs more to run than one shared, multi-tenant database that serves every customer at once.
- What it buys: isolation built into the structure, not a rule. A full database export, not a few CSVs. And a region you choose per client.
- What it asks of the vendor: each new client needs a new database project, not a new row. And every schema change has to reach every client's project cleanly.
- SalesCrew is single-tenant, with one Supabase project per client. Shared code and settings per instance carry every change to every client's project.
Two architectures, two different bills
A multi-tenant CRM runs one database for every customer. A single-tenant CRM runs one database per customer. Both can give you the same features on screen. The difference is underneath, in how customer data is kept apart. It shows up in the vendor's bill, not in the product screenshots.
Multi-tenant is cheaper to run, because the vendor grows one set of servers as customers join. Single-tenant costs more, because each new customer needs new infrastructure: a database, storage and compute of its own. At scale, that gap is no rounding error. It's the main reason most SaaS products, CRMs included, default to multi-tenant.
What the extra cost actually buys
First, it buys isolation built into the structure, not a policy. In a shared database, isolation depends on every access rule being written right, on every table, forever. With a database per customer, no other customer's data sits in the same database to expose. A bad rule inside one customer's project can't leak into another's, because they're different databases.
Second, it buys a real export. A shared-database vendor can give you CSVs of the objects it chose to expose. A single-tenant vendor can give you the actual database as a full dump, because nothing else in it needs leaving out. A CRM holds call logs, email threads, custom fields and the links between them. So for a CRM, the gap between "a CSV per object" and "the database" is wider than for simpler products.
Third, it makes data residency a real choice. Setting up a client on a single-tenant design means creating a new database project, so you can pick the region then, per client. A shared-database vendor runs wherever its one database lives. Every customer inherits that choice, wherever their own business or customers are.
What single-tenant costs beyond the infrastructure bill
The server bill is the most visible trade, but not the only one. Setting up a new client isn't a matter of adding a row. You create a new database, storage and edge functions, and set them all up right. That's real work, and any single-tenant vendor has to automate it well to grow. SalesCrew runs provisioning as a single triggered workflow, and a fleet heartbeat watches every client instance at once.
The other cost is rollout discipline. On a multi-tenant product, a schema change or a new feature touches one database once. On a single-tenant design, the same change has to reach every client's project cleanly, whatever schema state that instance is in. SalesCrew keeps the app code and feature set shared. Settings stored in each project control how each instance behaves. A feature ships once in code and is switched on or off per instance through settings. Nobody maintains a separate branch per client.
In short, single-tenant isn't simply a better design. It's a different one. It gives up a lower running cost and simpler setup in return for stronger isolation, a real export and a choice of region. Whether that trade pays depends on how much you need those promises as a buyer. It doesn't depend on whether single-tenant sounds more secure in the abstract.
Questions
- Is single-tenant always the better architecture for a CRM?
- No. It's the better fit when isolation, data ownership and a choice of region matter more than the lowest running cost. Those promises come from the structure itself, not from a rule that has to be right every time.
- Does single-tenant slow down shipping new features?
- It can, unless the setup is config-driven. A change applied by hand to each client's project, one at a time, doesn't scale. A change shipped through shared app code, with settings per instance, does. It takes more discipline than one shared database, whatever the vendor.
- How does provisioning work for a new client on a single-tenant model?
- It means creating a new database project instead of adding a row to an existing one. Making that step fast and reliable is real infrastructure work. So ask any vendor what a new instance starts with once it exists.