Skip to content

An AI-first web framework.

Invalid programs are hard to express. Valid programs are cheap to verify.

Give your coding agent a structure it can check: typed views, explicit data and contracts for every behaviour.

Start buildingUnderstand Hozu
The Hozu interlocking joint logo

ほぞ / A joint that fits.

Your first 30 seconds

Create an app, add a feature, check your work. Node 22.18 or newer.

Use --agent agents for Codex, Cursor or Copilot; --agent claude for Claude Code.

npm create hozu@latest my-app -- --agent claude
cd my-app
npm install
npx hozu add feature tasks --page /tasks
npx hozu check

Structure you can verify.

The IR is the source of truth

Typed builders describe your app as data. The validator, compiler and runtime share one representation.

Contracts for every behaviour

Given a state, when an event happens, expect a result. Every machine transition has a contract.

Rendering is derived

Declare who can see data and how fresh it must be. Hozu derives the render plan; only machine-bound views hydrate.

Diagnostics that lead to a fix

Each diagnostic carries a location, a cause and a suggested fix. Read it yourself or pass the JSON to your agent.

Measured, with the rough edges included.

In the notes-app correctness trial, Hozu passed 72/72 checks and Nuxt passed 67/72 across two runs per framework. One Nuxt change broke existing behaviour. This is a small sample, not an estimated failure rate.

Trial 0012: build, change and regression checks
FrameworkChecks passed
Hozu72 / 72
Nuxt67 / 72

The trade-off: trial 0012 used 2.79× Nuxt’s weighted tokens to build and 2.06× to change. With the account scaffold, trial 0013 reduced build cost to 1.66×, reusing the earlier Nuxt baseline.