Multi-tenant CMS: One headless CMS, multiple sites- How does it work?

Multi-tenant CMS.jpeg
By Olaitan Akano
Read time 3 min
Posted on 17 Dec 2025

Managing multiple websites, each with its own CMS, can feel like juggling flaming torches. It’s expensive, chaotic, and a nightmare to scale. Between inconsistent branding, duplicated content, and constant developer overhead, businesses waste time and resources.

Enter the multi-tenant CMS, a game-changer that lets you manage multiple sites from a single platform. In this updated article, we’ll break down what a multi-tenant CMS is, how it works, and why BCMS is a top choice for businesses looking to streamline their content operations with its developer-friendly features and seamless integration.

What is multi-tenant architecture?

Multi-tenant architecture is like a high-rise apartment building: one structure houses multiple tenants, each with their own private space. In software, it means a single instance of an application serves multiple users or clients (tenants) while keeping their data and configurations separate. Unlike single-tenant systems, where each site requires its own CMS instance, multi-tenancy allows sharing a backend, reducing costs and complexity.

What is a multi-tenant CMS?

A multi-tenant CMS is a content management system that powers multiple websites or digital properties from one shared backend.

Each tenant—whether a brand, region, or client—gets its own isolated frontend logic, content, and permissions, but the core infrastructure is centralized.

This setup is often paired with a headless CMS architecture, where content is decoupled from presentation, allowing flexible delivery across sites, apps, or other channels, enhancing the overall digital experiences.

Is a headless CMS the right choice for multi-tenancy?

Absolutely. A headless CMS shines in multi-tenant setups because it separates content (the backend) from how it’s displayed (the frontend).

This means that with headless capabilities, you can reuse content across multiple sites while customizing the look and feel for each.

Developers love the flexibility to use preferred frameworks and technologies like Next.js, Astro, or Nuxt, while marketers appreciate the ability to manage content without tech bottlenecks. BCMS, for instance, integrates seamlessly with frameworks like Astro, providing pre-configured boilerplates that simplify setup and content fetching.

Challenges for leading enterprises that the key benefits of a multi-tenant CMS solve

Why go multi-tenant? Here’s what you gain:

  • Cost Savings: Shared infrastructure slashes hosting and maintenance expenses.

  • Consistent Branding: Maintain a unified brand identity with room for local tweaks.

  • Faster Launches: Spin up new sites quickly without starting from scratch.

  • Streamlined Updates: Apply changes or upgrades across all sites in one go.

  • Team Collaboration: Marketing and dev teams work seamlessly in one system.

  • SEO Optimization: Tools like those in BCMS ensure high-performing, SEO-friendly sites.

Who needs multi-tenant capabilities?

Multi-tenant CMS is a lifeline for organizations juggling complex digital ecosystems. It’s ideal for:

  • Large enterprises with Multiple Brands: Manage sub-brands under one umbrella. (Note: An enterprise CMS isn’t the same as a multi-tenant CMS—an enterprise CMS often focuses on scale, not shared tenancy.)

  • Franchise Networks: Think McDonald’s, with localized sites for each region.

  • Agencies: Handle client websites efficiently from a single platform.

  • Universities: Run faculty-specific portals with shared resources.

  • Government Institutions: Centralize content for multiple departments.

BCMS as a Multi-tenant CMS

Let’s see multi-tenancy in action with BCMS, a lightweight, headless CMS built for flexibility and developer productivity. Imagine a global restaurant chain like McDonald’s.

Each country needs a website with localized menus, prices, and languages, but the core branding and content types (e.g., menus, promotions) remain consistent.

Here’s how BCMS makes it happen, leveraging its powerful features and seamless integration with headless CMS platforms.

Setting Up the Environment

​​Before diving into customization, let’s set up your development environment. BCMS offers starter templates that simplify the process, whether you’re using Next.js, Astro, or another frontend framework.

1. Run the Starter Template

In your terminal, run the following command to create a new Next.js project with BCMS:

npx @thebcms/cli create next starter restaurant

2. Install Required Packages

You’ll be prompted to install packages—type y when asked. Once done, a link will appear in the terminal. Click it to open the BCMS dashboard in your browser and log in to your BCMS account. If you don’t have one, you can sign up using Google or GitHub.

3. Name Your Project

After logging in, return to your terminal and name your project, e.g.:

mutitenant-resturant

This will clone the starter GitHub repo into a new folder and set up a sample restaurant layout.

4. Install Project Dependencies

Navigate into your project folder and install dependencies:

cd mutitenant-resturant && npm install

You now have a working project integrated with BCMS, ready to fetch and display restaurant content dynamically.

multilenant cms project

Configuring BCMS for Multi-tenancy

BCMS makes multi-tenant setups straightforward with its template and entry system, allowing you to define content structures for each tenant while maintaining a centralized backend.

Create the Tenant Template in the BCMS dashboard:

  • Navigate to the Templates tab.

  • Click Create new template and name it Tenant.

  • By default, Title and Slug fields are added. 

Save the template.

Tenant Template

Create another template, Tenant Item, in the BCMS dashboard:

  • Navigate to the Templates tab.

  • Click Create new template and name it Tenant Item.

  • Keep the default Title and Slug fields.

  • Add three more fields:

    • Price (Number)

    • Category (String)

    • Tenant_id (Entry Pointer)

  • Your template should now include: Title, Slug, Price, Category, Tenant_id, 

  • Save the template.

Tenant Item

Create and Publish Entries

  • Create Tenant Entries: Navigate to the Entries section under the Tenant template and create entries for each tenant:

    • For pizza-place: Set Title to "Pizza Place", Slug to "pizza-place".

    • For burger-joint: Set Title to "Burger Joint", Slug to "burger-joint".

    • For pancake-shop: Set Title to "Pancake Shop", Slug to "pancake-shop".

    • Publish the entries.

4. Pizza Place.png
5. burger joint.png
6. pancake shop.png

Create Tenant Item Entries: Navigate to the Entries section under the Tenant Item template and create entries for each food item, linking them to the appropriate tenant:

  • For "Margherita Pizza": Set Title to "Margherita Pizza", Slug to "margherita-pizza",Price to 12.99, Category to "Pizza" and Tenant to the "Pizza Place" entry (select from the dropdown).

  • For "Classic Burger": Set Title to "Classic Burger", Slug to "classic-burger", Price to 8.99, Category to "Burger" and Tenant to the "Burger Joint" entry (select from the dropdown).

  • For "Blueberry Pancake": Set Title to "Blueberry Pancake", Slug to "blueberry-pancake", Price to 6.99, Category to "Pancake" and Tenant to the "Pancake Shop" entry (select from the dropdown).

Blueberry Pancake
Classic Burger
Margherita Pizza

Publish the entries to make them available to your app.

10 Tenant example.png
11 tenant item example.png

Fetching and Applying Tenant Data

Now, let’s fetch the tenant-specific data and apply it in your app.

  • Add Tenant Routing: In the src/app directory, create a folder [tenant] and a file page.tsx. The [tenant] folder will be replaced by the tenant’s slug in the URL (e.g., /pizza-place). This sets up dynamic routing for tenants (e.g., /pizza-place, /burger-joint, /pancake-shop). 

This code fetches all Tenant Item entries and filters them based on the linked tenant’s slug, matching the URL parameter (e.g., pizza-place).

Here’s a sample page.tsx to fetch and filter tenant-specific items:

Tenant Data
13.png
14.png
15.png
16.png
17.png

The HomeMenu component renders the filtered items:

18.png

Dynamic Rendering

With the setup complete, your app dynamically renders content based on the tenant’s slug. For example:

  • /pizza-place displays "MARGHERITA PIZZA" with a price of "$12.99".

  • /burger-joint displays "CLASSIC BURGER" with a price of "$8.99".

  • /pancake-shop display “BLUEBERRY PANCAKE” with a price of “$6.99”
    Changes in the BCMS dashboard (e.g., updating a price) will automatically reflect in your app after a re-fetch.

19.png
20.png
21.png

What to look for in a right multi-tenant CMS

Choosing the right multi-tenant CMS is critical. Here’s what to prioritize:

  • MACH Architecture: Ensures flexibility, scalability, and omnichannel delivery.

  • Granular Permissions: Restrict access by tenant, role, or content type.

  • Localization Features: Support multiple languages and region-specific content.

  • Scalable Infrastructure: Handle growth without performance hiccups.

  • Editor-Friendly UI: Empower non-technical users to manage content.

  • Security Standards: Look for SSO, audit logs, and GDPR compliance.

  • Framework Flexibility: Integrate with React, Astro, Nuxt, or others. BCMS checks all these boxes, offering a modern, developer-friendly platform that balances power and simplicity.

Conclusion: Try BCMS a a multi-tenant CMS to manage multiple websites

A multi-tenant CMS is a must for businesses managing multiple websites, from global franchises to digital agencies. It saves time, cuts costs, and keeps your brand consistent while allowing local flexibility. BCMS stands out as a lightweight, headless solution built for multi-tenancy, offering developers pre-configured boilerplates, seamless framework integration, and a unified project structure. Marketers benefit from its intuitive dashboard and SEO tools, making it a perfect balance of power and simplicity.

Ready to streamline your content operations? Try BCMS today and see how one CMS can power all your sites with ease.

It takes a minute to start using BCMS

Gradient

Join our Newsletter

Get all the latest BCMS updates, news and events.

You’re in!

The first mail will be in your inbox next Monday!
Until then, let’s connect on Discord as well:

Join BCMS community on Discord

By submitting this form you consent to us emailing you occasionally about our products and services. You can unsubscribe from emails at any time, and we will never pass your email to third parties.

Gradient