Multi-Tenant Workspaces

One customer, one workspace.

Every customer gets an isolated workspace with its own members, roles, subscription, feature flags and data. Users switch between the workspaces they belong to, and your app reads whichever one is active.

Your app is an organization in BuildBase. Your users sign in and work inside workspaces - one per team or customer.

You set up

In the console and the SDK

  • Whether new users get a workspace automatically when they sign up
  • Whether users may create more workspaces of their own
  • A switcher in your app - one component, you design the button

Your users get

Inside their workspace

  • Their own workspace, with its own members, plan and data
  • Invite teammates and give each of them a role
  • Switch between every workspace they belong to

Multi-tenancy you do not have to design

The tenant model, the switcher and the member screens are already built. You render a trigger button.

Switch in One Click

Users see every workspace they belong to, search it, create a new one and switch. You only style the button that opens it.

Teammates and Roles

Users invite teammates by email and choose what each one can do. Everything a teammate can see follows the role they were given.

A Plan per Workspace

Each workspace pays for its own plan, seats and limits. One team hitting a limit never blocks another team.

Ready on First Sign-in

A new user lands in a workspace straight away, with no setup step. You decide whether they can create more.

Settings Already Built

Members, billing, features and the rest open in a ready-made settings screen, so you do not build those pages.

Nothing Leaks Between Teams

Data, feature switches and settings belong to the workspace. Switching workspace switches everything your app shows.

A switcher and the member API, from one hook

WorkspaceSwitcher handles search, create and switch. useSaaSWorkspaces() is there when you want your own UI.

components/navbar.tsxTSX
import { useSaaSWorkspaces, WorkspaceSwitcher } from '@buildbase/sdk/react';

function App() {
  const {
    workspaces,
    currentWorkspace,
    createWorkspace,
    switchToWorkspace,
    addUser,
    removeUser,
  } = useSaaSWorkspaces();

  return (
    <nav>
      <WorkspaceSwitcher
        trigger={(isLoading, ws) => (
          <button>{ws?.name ?? 'Select workspace'}</button>
        )}
      />
    </nav>
  );
}

Frequently Asked Questions

What people ask about Workspaces.

Do my users see this?

Yes. Workspaces are where your users work: each one has its own members, roles, plan and data, and users switch between the workspaces they belong to.

What is the difference between an organization and a workspace?

Your organization is your app inside BuildBase - where you set everything up in the console. Workspaces live inside it and belong to your users, usually one per team or customer.

Does every new user get a workspace?

By default, yes: one is created on their first sign-in. You also decide whether users may create more workspaces themselves.

Does each workspace pay separately?

Yes. Plans, seats, quotas and credits belong to the workspace, not to the user, so one team hitting a limit never blocks another.

Give every customer a workspace

Wrap your app in the provider and drop in the switcher. Members, roles and per-workspace billing are already there.

7-day free trialNo credit card requiredCancel anytime