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

# The component registry

> How the Mzizi component registry works: 577 items in files, a Rust path that leads, a React build installable with the shadcn CLI, all served over a public API with no database.

<Note>
  This section documents Mzizi's **components**: the registry and design system that
  support the language, served through [`api.mzizi.dev`](/platform/api-gateway) and browsable at
  [mzizi.dev/components](https://mzizi.dev/components). It is not documentation for the
  language itself; [the ecosystem page](/ecosystem) draws the line. Rust components
  ([Mzizi Roots](/roots/overview)) lead. The React components are **the React build**:
  they keep working, but they are deprioritised.
</Note>

The Mzizi registry is the set of components, tokens and architecture that Mzizi applications
are built from: built to support the language as its UI layer. It also supplies the
ground truth for the language benchmark's UI tasks, as one of its jobs. It lives in
[`mzizi-dev/mzizi-registry`](https://github.com/mzizi-dev/mzizi-registry) as files, and it is
served over the public API at [`api.mzizi.dev`](/platform/api-gateway) and the
[MCP server](/toolchain/mcp).

## Two builds of the same components

| Build | What it is | State |
| - | - | - |
| **Rust** | Dioxus components in the `mzizi-rs/` crates, growing into [Mzizi Roots](/roots/overview) | Leads. `cargo add mzizi-roots`; source and its crate at `/v1/rs/{name}` |
| **The React build** | TypeScript and React (`.tsx`) components, shadcn-compatible | Works and installs today. Deprioritised |

Every primitive with a Rust sibling has a contract test in the registry asserting that the
`.tsx` and the `.rs` agree on variants, `data-slot` names and classes. Where both exist,
present the Rust one first. The components of the
[Mzizi Dashboard Standard](/patterns/dashboard-standard) also carry a versioned JSON contract
each, in the registry's `contracts/`: see [Component contracts](/registry/contracts).

The React build installs with the shadcn CLI, one command per component:

```bash theme={null}
npx shadcn@latest add https://api.mzizi.dev/v1/ui/button
```

That fetches the component JSON, resolves its dependencies, and writes the source into your
project as a file you own. See [consuming the registry](/registry/consuming).

## What it holds

Read from `GET https://api.mzizi.dev/v1/ui` on 29 September 2026:

| Item type | Count | Installs to |
| - | - | - |
| `registry:ui` | 420 | `components/ui/` |
| `registry:block` | 105 | composed page sections |
| `registry:lib` | 47 | `lib/` |
| `registry:hook` | 3 | `hooks/` |
| `registry:base` | 1 | the base layer |
| `registry:theme` | 1 | the theme |
| **Total** | **577** | |

Counts move. `GET /v1/ui` is the live answer; prefer it to a number written down anywhere,
including here.

## Where the source of truth is

`registry.json` at the root of the registry repository is the manifest, and the component
source sits beside it on disk under `components/registry/n<number>-<name>/`. The API reads
both, at build time, from a pinned registry commit.

<Warning>
  **There is no database behind the registry.** Component source is not stored in a
  database, and writing a component with SQL is not a supported path. It was, and the
  practice was retired; then the database itself was removed from the registry on
  29 September 2026. The only database in Mzizi is the console's. See
  [where data lives](/platform/data).
</Warning>

## Naming

Naming is a deliberate mix. Framework-standard primitives keep their plain names: `button`,
`dialog`, `card`. Many of Mzizi's own branded composites carry the `mzizi-` prefix. Components that used to be named `nyuchi-*` are now
`mzizi-*`, and the old names redirect: `GET /v1/ui/nyuchi-sidebar` answers `308` to
`/v1/ui/mzizi-sidebar`.

## Where to go next

<CardGroup cols={2}>
  <Card title="Consuming" icon="download" href="/registry/consuming">
    Install components into your application with the shadcn CLI, customise them afterwards,
    and take updates without losing your changes.
  </Card>

  <Card title="Contributing" icon="git-pull-request" href="/registry/contributing">
    Author a new component, register it in the manifest, and get it through the checks.
  </Card>

  <Card title="Schema" icon="braces" href="/registry/schema">
    The shadcn-compatible JSON schema, the item types, and the API response shape.
  </Card>

  <Card title="MCP server" icon="plug" href="/toolchain/mcp">
    The one Mzizi MCP endpoint, what it exposes, and how to connect a client.
  </Card>

  <Card title="Browsing" icon="search" href="/registry/components">
    Listing components from the API, the MCP server and `mzizi.dev/components`.
  </Card>

  <Card title="Architecture" icon="dna" href="/architecture/overview">
    The DNA helix each component is placed on, and what placement obliges it to do.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.