One ERP core, four organisations: what we learned building multi-tenant
By CTC Smart Tech · 23 August 2026 · 7 min read

Tenant isolation, module switches and a sync server — the decisions that made one code base serve four very different organisations.
Our ERP platform serves a Buddhist temple, a property media agency, a newsroom team and our own company from one code base. The decisions that made this work were not glamorous.
First: isolation at the data layer, not the UI. Each tenant has its own database; the application never queries across tenants. Hiding menus is not security.
Second: modules are switched on per tenant in configuration, not in code branches. A temple needs events and merit records; a newsroom needs sources and a Telegram bot. Same core, different switches.
Third: writes go through one API with an audit trail and last-write-wins conflict handling that the browser understands. We learned this the hard way when a script wrote directly to the database and the open browser tab overwrote it.
Fourth: Vietnamese invoicing is not optional. Accountants reject anything that does not match the standard forms, so those templates are part of the core.
The payoff is that a new tenant takes weeks, not months, and every fix ships to all four.
