> ## 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.

# Direction and roadmap

> Where the owner has said Mzizi is going, how that relates to the charter's phases, and where the real plans live. Direction, not shipped work.

<Warning>
  **Everything on this page is direction, not shipped work.** Phase 0 is still open, and the
  charter says nothing after it starts until the benchmark gives a real number. The
  [pilots](/pilots) so far have not shown an advantage.
</Warning>

## The owner's direction, 29 September 2026

* **Mzizi builds the whole stack.** It is meant to build the backend as well as the UI, and
  Mzizi's own backend infrastructure is meant to be built with it. The first slice exists:
  a `service` with HTTP routes and handlers, lowered by `mz build` to a local Rust + axum
  package (RFC-0011). No Mzizi backend is ported.
* **The frontend takes one of two shapes.** Either Astro, with Mzizi UI
  ([Mzizi Roots](/roots/overview)) underneath, or pure Rust end to end.
* **Everything built carries a contract.** Components, language functions and backend
  handlers, specified in RFC-0010. Today, contracts exist for components and services:
  `mz contract` evaluates a component's `contract` block against its own declarations
  (RFC-0006), and runs a service in process, testing each `ensure` over generated requests
  (RFC-0011). Contracts for functions do not exist, because functions do not.
* **A new kill criterion.** Mzizi against the best existing language for each kind of
  task, aiming to rank with the top languages, specified in RFC-0009 §6. Not measured yet.
* **Results are always published**, whichever way they fall, in
  [`benchmarks/results/`](https://github.com/mzizi-dev/mzizi/tree/main/benchmarks/results).
  Held-out task texts are published when a task set is retired; their scores are published
  immediately.
* **The benchmark widens.** RFC-0009 extends it to React, and to TypeScript, Python, Go, C++
  and Rust backends. The React arm and the Mzizi backend arm (`mzizi-be`) are added and have
  never run; the Hono, FastAPI, Go, C++ and axum arms are not added yet
  ([the benchmark](/benchmark)).

Both RFCs are merged in
[`design/`](https://github.com/mzizi-dev/mzizi/tree/main/design) in `mzizi-dev/mzizi`, and
[charter v0.4](/charter) records the direction. Both are drafts:
[RFC-0009](https://github.com/mzizi-dev/mzizi/blob/main/design/RFC-0009-comparison-benchmark.md)
for the benchmark and kill criterion, and
[RFC-0010](https://github.com/mzizi-dev/mzizi/blob/main/design/RFC-0010-contracts-everywhere.md)
for contracts everywhere. [RFC-0011](https://github.com/mzizi-dev/mzizi/blob/main/design/RFC-0011-handlers.md)
designs the backend slice, and most of it is built. See [the RFC index](/rfcs).

## What Mzizi still has to build

The language's own list is
[`LANGUAGE-TRACKER.md`](https://github.com/mzizi-dev/mzizi/blob/main/LANGUAGE-TRACKER.md),
summarised on [What still has to be built](/tracker). Mzizi has no expressions, bindings,
callable functions, loops, error handling, modules or standard library yet. Its milestones are
**M1, a language that computes** (all of Tier 1) and **M2, a working programming language**
(Tier 1 plus modules, a standard library, lowering all code to Rust, a runnable build, errors
mapped back to `.mz` and Rust crate interop). Neither is reached.

## How that fits the charter

The [charter](/charter) (v0.2) widened Mzizi from web UI to general-purpose software for the
agentic world, and merged rendering and edge deployment into one full-stack Phase 1. v0.4
records the direction above, calls Mzizi a general-purpose programming language, and gives
Phase 0 one goal, which raises its bar. It does not remove the gate:

> If this doesn't show a measurable advantage, nothing downstream matters — don't build
> Phase 1 until Phase 0 has a real number attached to it.

| Phase | What it delivers | State |
| - | - | - |
| 0 | Mzizi built as a programming language, measured against the best existing language for each kind of task | **Open.** Two pilots run |
| 1 | A full-stack application, UI and server from the same source, on Cloudflare | Not started, gated on 0 |
| 2 | Candle integration for ML inference | Not started |
| 3 | Native mobile, interop first | Not started |
| 4 | Distribution adapters, Astro among them | Not started |
| 5 | Hardware and embedded | Named, not designed |

## What has to happen next

The second pilot listed the fixes to make before a run that tests the kill criterion.
`benchmarks/READINESS.md` audits them, and most are now made: relative paths in the check
output, diagnostics for React idioms, a height derived from its class, `mz fix`, and a
larger public task set. The runner now reads `arm.toml` and a language-neutral `spec.md`,
and has a React arm. Phase 0 is still not complete. The run waits on: the React arm's pins
from the registry's lockfile, held-out tasks in a private repository, a pre-registered
`PLAN.md`, first Leptos and React runs, and for the backend family, probe scoring in the
runner, tasks B2–B5 and the other-language arms. See
[what remains](/pilots#what-remains-before-the-run-counts).

[RFC-0007](https://github.com/mzizi-dev/mzizi/blob/main/design/RFC-0007-gap-register.md) is
the gap register: what the charter's scope needs that the language and compiler lack, and
the order to build it in. RFC-0008 took on the first five gaps of its first tier: name and
type resolution, `list(T)`, `record`, `option(T)` and `for each`.

## Where the plans live

[`design/ROADMAP.md`](https://github.com/mzizi-dev/mzizi/blob/main/design/ROADMAP.md) in
`mzizi-dev/mzizi` is the index of every plan in the project. It holds pointers and gates,
not work items: plans live next to the code they plan. The separate `mzizi-roadmap`
repository is archived and points there.


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