> ## Documentation Index
> Fetch the complete documentation index at: https://developers.zite.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Workspaces

> A workspace is one database plus the apps and workflows built on it. Roles and permissions are defined once, at the workspace level.

A **workspace** is the top-level container in Zite. It ties together:

* **One database** — the tables, fields, and records your system runs on.
* **Roles and permissions** — defined once, on the database, and shared by everything in the workspace.
* **Many apps and workflows** — each built on that same database.

This is the core idea: you model your data and access rules once, then build as many apps on top as you need.

<Info>
  A workspace has a single stable id. You'll see the same id referred to as the **workspace id**, the
  **base id** (`baseId`), or the **base public identifier** depending on context — they're the same thing.
  It addresses the workspace, its database, and its underlying code repository.
</Info>

## What's in a workspace

<CardGroup cols={2}>
  <Card title="The database" icon="database" href="/concepts/databases">
    A single Zite database with tables, fields, and records. Every app reads and writes it through a
    typed client.
  </Card>

  <Card title="Apps" icon="layout-panel-left" href="/concepts/apps">
    React apps built on the database. A workspace can have many — a customer portal, an internal admin
    tool, a dashboard — all sharing the same data.
  </Card>

  <Card title="Workflows" icon="workflow" href="/concepts/workflows">
    Backend workflows that run business logic: called from an app, on a schedule, or from an inbound webhook.
  </Card>

  <Card title="Roles & permissions" icon="shield" href="/concepts/permissions">
    Roles and row-level rules defined on the database and enforced everywhere.
  </Card>
</CardGroup>

Under the hood, a workspace is a git-backed monorepo — one repository holding every app and workflow,
plus the generated types and shared design system. You rarely touch this directly; agents build inside it.
See [Project structure](/framework/project-structure) for the layout.

## Why one database, many apps

Because everything in a workspace shares one database:

* **Data stays consistent.** An internal ops tool and a customer-facing portal read and write the same records.
* **Permissions are defined once.** You set roles and row-level rules on the database, and every app inherits them.
* **Building is fast.** New apps start with the schema, types, auth, and design system already in place.

## Creating a workspace

You can create a workspace from the [dashboard](https://app.zite.com), or ask an agent to do it through
the [Zite MCP](/mcp/overview) with `create_workspace`. A workspace can start as **database-only** (no apps yet) —
apps are added later, in the same workspace.
