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
servicewith HTTP routes and handlers, lowered bymz buildto 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) 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 contractevaluates a component’scontractblock against its own declarations (RFC-0006), and runs a service in process, testing eachensureover 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/. 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).
design/ in mzizi-dev/mzizi, and
charter v0.4 records the direction. Both are drafts:
RFC-0009
for the benchmark and kill criterion, and
RFC-0010
for contracts everywhere. RFC-0011
designs the backend slice, and most of it is built. See the RFC index.
What Mzizi still has to build
The language’s own list isLANGUAGE-TRACKER.md,
summarised on What still has to be built. 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 (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.
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.
RFC-0007 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 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.