Skip to main content
This section documents Mzizi’s components: the registry and design system that support the language, served through api.mzizi.dev and browsable at mzizi.dev/components. It is not documentation for the language itself; the ecosystem page draws the line. Rust components (Mzizi Roots) lead. The React components are the React build: they keep working, but they are deprioritised.
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 as files, and it is served over the public API at api.mzizi.dev and the MCP server.

Two builds of the same components

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 also carry a versioned JSON contract each, in the registry’s contracts/: see Component contracts. The React build installs with the shadcn CLI, one command per component:
That fetches the component JSON, resolves its dependencies, and writes the source into your project as a file you own. See consuming the registry.

What it holds

Read from GET https://api.mzizi.dev/v1/ui on 29 September 2026: 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.
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.

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

Consuming

Install components into your application with the shadcn CLI, customise them afterwards, and take updates without losing your changes.

Contributing

Author a new component, register it in the manifest, and get it through the checks.

Schema

The shadcn-compatible JSON schema, the item types, and the API response shape.

MCP server

The one Mzizi MCP endpoint, what it exposes, and how to connect a client.

Browsing

Listing components from the API, the MCP server and mzizi.dev/components.

Architecture

The DNA helix each component is placed on, and what placement obliges it to do.