How to Build a White-Label SaaS: Architecture Lessons from LetMenu
Multi-tenancy, per-customer branding, white-label mobile apps and fast onboarding: the architecture decisions behind a white-label SaaS, explained with a real example.
White-label SaaS is one of the most efficient business models in software: build once, then sell the same platform to many businesses under their own brands. But the architecture decisions you make early decide whether onboarding customer number 50 takes a day or a month. Here's what we learned building LetMenu, a white-label ordering platform for restaurants.
1. Choose your multi-tenancy model early
Multi-tenancy means one application serves many customers ("tenants") while keeping their data separate. There are three common patterns:
| Model | How it works | Pros | Cons |
|---|---|---|---|
| Shared database, tenant ID | Every table has a tenant_id column | Simple, cheap, easy to update | Must enforce isolation carefully in every query |
| Schema per tenant | Each tenant gets its own schema in one database | Stronger separation | More complex migrations |
| Database per tenant | Each tenant has its own database | Maximum isolation | Higher cost and operational effort |
For most SMB-focused SaaS products, a shared database with a tenant ID is the right start. The key is to enforce tenant scoping centrally (for example with global query scopes in Laravel) so a developer can't accidentally leak data between customers.
2. Make branding and configuration data, not code
If adding a new customer requires a developer, you don't have a scalable SaaS. Everything that differs per customer should live in the database or configuration:
- Name, logo, colours and app icon.
- Menus or catalogues, prices and options.
- Branches or locations, opening hours, delivery zones and fees.
- Staff accounts, roles and permissions.
- Payment methods and feature toggles.
In LetMenu, a restaurant's branding is applied across its app, web ordering page and dashboard from one set of settings, which is a big reason a new restaurant can go live in about 48 hours.
3. Plan for hierarchy: tenants, branches and roles
Real businesses aren't flat. A restaurant group has multiple branches; each branch has its own hours, delivery zones and staff. Model this hierarchy explicitly:
- Tenant (the business), with owners who see everything.
- Branches, each with their own settings.
- Branch-scoped roles: a branch manager sees only their location's orders.
- Unified reporting across branches for owners.
4. White-label mobile apps need a build pipeline
Web apps can switch branding at runtime. Native mobile apps can't fully: each customer's app needs its own name, icon, splash screen and bundle ID. With Flutter, we use a build pipeline that injects each tenant's branding and configuration and produces a separate iOS and Android app from the same codebase.
Two practical points:
- App store accounts: Apple's App Review Guidelines (section 4.2.6) expect apps created from templates to be submitted by the business that owns the content, so customers usually publish under their own developer accounts. Build this into onboarding.
- Updates: keep tenant-specific settings server-side wherever possible, so most changes don't need a new app release.
We explain why Flutter suits this in our Flutter vs React Native guide.
5. Real-time where it matters
Not everything needs to be real-time, but some things must be. In a restaurant, an order placed in the app must appear on the kitchen dashboard instantly, with a sound alert. Identify the few flows where seconds matter and invest there; keep the rest simple.
6. Design onboarding as a product
Fast onboarding is a competitive advantage. Build internal tools to:
- Create a tenant with defaults in minutes.
- Import menus or catalogues in bulk.
- Preview branding before launch.
- Track each customer's launch checklist.
7. Security and isolation
- Enforce tenant scoping in one place, and test it.
- Use role-based access control for staff.
- Keep secrets and payment credentials per tenant, encrypted.
- Log admin actions for audit and support.
Our stack for white-label SaaS
For LetMenu we used Laravel for the multi-tenant API and dashboard, MySQL for tenant-scoped data, and Flutter for the white-label iOS and Android apps. It's a pragmatic, maintainable stack that a growing SaaS can scale on.
Building a SaaS product?
We design and build SaaS platforms end to end, from architecture to app store launch. See the LetMenu case study or tell us about your idea.
Frequently asked questions
What is a white-label SaaS?
A software product that many businesses use under their own brand. Each customer gets their own name, logo and colours, while everything runs on one shared platform maintained by the provider.
What is multi-tenancy?
An architecture where one application serves many customers (tenants) and keeps each tenant's data separate. Common approaches are a shared database with a tenant ID, a schema per tenant, or a database per tenant.
Can each customer have their own app in the App Store?
Yes. A build pipeline can produce a separately branded app per customer. Apple's App Review Guidelines (4.2.6) expect template-based apps to be published from the business's own developer account, so plan for that in onboarding.