Tenancy Decided Early
Shared schema, separate schema or separate database — each has different costs, and switching later is severe.
Three decisions in a SaaS development project are difficult to reverse: how tenants are separated, how billing maps to what customers actually do, and how permissions work. Everything else can be changed later. These are worth arguing about in week one, because retrofitting any of them means touching every query in the system.
The features will change. The tenancy model will not, without a rewrite.
Shared schema, separate schema or separate database — each has different costs, and switching later is severe.
Plans, seats, usage, trials, upgrades, proration and failed payments. All of it, not the happy path.
Roles designed once rather than accumulated as individual checks scattered through the code.
The first ten minutes decide activation, and it is usually the last thing built.
The application does not need to rank; the pages around it do — see SaaS SEO.
Four structural differences, and each one is a decision rather than a feature.
Discuss Your Product →Tenant isolation has to be correct in every query, not most of them.
Subscriptions, changes mid-cycle, failed cards and dunning are core, not an integration.
Customers sign up, configure and pay without you. That is a product requirement.
You deploy to everyone, so migrations and backwards compatibility matter permanently.
Architecture, the application, and the commercial machinery around it.
Acquisition alongside the build is covered by Google Ads for SaaS.
Architecture decisions, then a narrow first version, then expansion.
Tenancy, billing model and permission structure, written down before code.
The smallest product that delivers the core value, not the full roadmap.
Application, billing and admin together, because launching without admin tooling hurts immediately.
Activation, usage and churn signals in place from launch rather than added later.
Expansion driven by what usage data shows rather than by the original roadmap.
It touches every query, every migration and every backup. Changing it later is close to a rewrite.
Shared schema puts all tenants in the same tables with a tenant identifier on every row. It is the cheapest to operate and the easiest to get wrong — one query missing its tenant filter leaks data between customers.
Separate schemas give each tenant their own tables in one database. Isolation is stronger and migrations become more work, because every schema has to be migrated.
Separate databases give the strongest isolation and the highest operational cost. It suits enterprise customers with contractual data requirements and is heavy for a product with thousands of small accounts.
The happy path — customer picks a plan, card is charged monthly — is a day of work. The rest is not.
Mid-cycle upgrades and proration, downgrades that reduce entitlements, seats added and removed, trials that convert or expire, cards that fail and the dunning sequence that follows, refunds, tax, and what a customer can still access after cancellation.
None of this is exotic; all of it appears within the first few months of having real customers. Modelling it before launch is much cheaper than modelling it around live subscriptions.







SaaS development builds software delivered as a subscription service to many customers from one system — which makes tenant isolation, recurring billing and permissions structural decisions rather than features.
It depends on your isolation requirements and customer profile. Shared schema suits many small accounts; separate databases suit few large ones with contractual data requirements. It is worth deciding deliberately, because changing it later is close to a rewrite.
Use a provider for payment processing and subscription state. Build the mapping between that and your entitlements, because the provider does not know what your plans allow. That mapping is where most billing bugs live.
It depends entirely on scope, and we will give a figure only once we know what the first version has to do. Anyone quoting a duration before that conversation is guessing.
Admin tooling and onboarding. Support cannot function without the first, and activation suffers badly without the second — yet both are routinely deferred until after launch, when they are needed on day one.
Still deciding if saas development is right for you?
Talk to UsEarly product decisions get discussed in terms of features, because features are what customers ask about and what the roadmap is made of. Almost all of them can be changed cheaply.
The decisions that cannot are structural and rarely discussed: how tenants are separated, what a permission means, how an entitlement maps to a subscription. They are made implicitly, in the first sprint, by whoever wrote the first query.
Spending a week on them before writing code feels slow relative to shipping features. It is the cheapest week in the project.
Tell us what the product does and who buys it. We will work through tenancy, billing and permissions with you before anything is built.
