Multi-tenancy is a spectrum, not a switch. The right point on it depends on your isolation, cost and customisation requirements — and getting it wrong is expensive to undo.
Isolation models
We typically run a shared application layer with logically isolated data per tenant, and promote the largest or most regulated tenants to dedicated resources. This keeps the common case cheap without trapping the demanding case.
Customisation without forks
White-label means every brand looks bespoke while running one codebase. We drive theming, feature flags and limits from per-tenant configuration, never from branching code, so a fix ships to everyone at once.
Scaling the boring parts
Onboarding, billing and per-tenant observability are what actually break at scale. We treat them as first-class product, not afterthoughts.