A web framework built for an AI agent to write the code: describe a feature once, and it becomes the API, the screen, the background job and the test.
What it is. Rails' philosophy on Bun + Postgres + SolidJS. Declare an action once: HTTP route, OpenAPI operation, typed client, job, MCP tool and test, with one policy guarding all of them.
Try it (no Docker): bunx create-ultimate myapp && cd myapp && bun run setup && bun run dev
Live demo · Docs · How it compares · When not to use it · Write your own adapter
Status. Released, every package on one version. v31 is the stable line: from it, at most one major every 90 days, and the previous major gets security fixes for six months (Stability). No outside security audit yet (SECURITY.md). One maintainer organisation, maintained day to day by an AI (GOVERNANCE.md).
Who uses it.
9 apps outside this repository build on Ultimate, small to medium in size; at least 1 of them serves production traffic. Owner-reported, As of 2026-11: adopters are never named (scripts/private-names.ts refuses a name in the tree), so no command here re-derives this line.
If you are a coding agent, start with
llms.txt: every doc, wiki page and package README as one link map.
A number written into a file goes stale on the next commit; the command does not. Run the right-hand column.
| Claim | Check it yourself |
|---|---|
| what npm serves; every package is there, with a provenance attestation | npm view @ultimat3/core version · bun run scripts/registry-audit.ts --json |
| a fresh scaffold is green on its first gate run, every push | the scaffold-smoke job in ci.yml |
| the gate's steps, in order, each with a verdict | bun run x -- verify --json |
x new writes 227 files you never edit (194 with --no-example), asks 0 questions |
bun run scripts/generator-counts.ts --json |
a rolling restart on Kubernetes drops no request: 0 of 9,201, As of 2026-11-10 |
the deploy-proof job in ci.yml, docker/deploy-proof/run.sh |
| realtime recovery on one node, from a forced restart | scripts/bench/results/README.md, each run dated in its JSON and held to the prose by scripts/bench-claims.ts |
every X_* code, its owner and its fix |
bun run x -- errors explain <CODE> --json |
| the facts below are the tree's | bun run scripts/readme-facts.ts --json |
| Fact | Today | Re-derive it |
|---|---|---|
| packages, versioned and published in lockstep | 31 | bun run scripts/list-workspaces.ts --json |
steps in the gate, x verify |
21 | bun run x -- verify --json |
coverage, per package and create-ultimate |
≥ 95% lines and functions; scripts/ pinned at 83% / 89% |
bun run coverage |
| test files beside their source | 3,800+ | git ls-files '*.test.ts' '*.test.tsx' | grep -cE '^(packages|scripts)/' |
X_* codes, each with a cause and a fix: |
1,200+ | jq '.errorCodes | length' framework.manifest.json |
What those numbers do not say:
| Not claimed | Why |
|---|---|
| that a green gate guarantees feature completeness | the gate asserts what its steps check, no more (scripts/lib/gated-apps.ts) |
| that few lines means many features | the demo's DOMAIN.md is partly a plan: likes and comments have no write path |
| that live messaging works in the demo | its live query and channel are declared and tested, and no island subscribes to either |
| that anyone outside the maintainers audited the security | none has; the posture and the open gaps are in SECURITY.md |
This is a real action from the reference app, quoted by scripts/readme-sample.ts, which fails the gate when the two differ:
import { action, t } from '@ultimat3/action';
import { canRunAct } from '../policy';
export const cancelRun = action({
input: t.object({ orgId: t.uuid, runId: t.uuid }),
output: t.object({ runId: t.uuid }),
policy: canRunAct,
row: ({ input, ctx }) => ctx.runs.runOwner(input.runId),
mcp: { expose: true, description: 'Cancel a run that is queued or in flight' },
async handle({ input, ctx }) {
await ctx.runs.cancel(input.runId);
return { runId: input.runId };
},
});POST /api/runs/cancel, its OpenAPI operation, api.cancelRun(...) in the browser, the cancelRun MCP tool and a job-callable handle all come from those lines, and the same canRunAct decides every one. A typo in a caller is a compile error.
bunx create-ultimate myapp && cd myapp && bun run setup && bun run devSomething narrower than the default dashboard? Start from a shape: --shape api, blog or dashboard, one flag, same gate → Shapes.
Or look first: the live demo, a social network built on Ultimate, deployed from main on every green push. Fabricated data, every row decided by a policy. Source: dummy/social-media-clone/.
No Docker, no env hunt: embedded Postgres, in-process NATS, storage in a local directory, a seeded database and a dev dashboard at /_x. bun run setup is required: x new installs nothing, and the app's own README names the six steps. → Getting started
| Pick it when | Because |
|---|---|
| an agent writes most of your code | one way per task, --json everywhere, and every error carries a stable code, a cause and a fix: command |
| you want authz written once | the same policy guards HTTP, live queries, jobs, MCP tools and admin |
| you want the boring parts decided | jobs, realtime, auth, mail, storage, i18n, SEO, admin and MCP ship in the box, each gated |
| the app may grow | the same app code from one PaaS process to Kubernetes (scale ladder) |
| Do not pick it when | Why |
|---|---|
| you need Node.js or Deno | Bun only, by design |
| your database is not Postgres | Postgres only |
| your UI is React, Vue or Svelte | SolidJS only |
| you deploy to Vercel functions, Lambda or Workers | containers only: zero platform primitives |
| you want plugins | there is no plugin API: an app wraps a primitive instead |
| you need multi-node realtime proven today | measured on one node only; see Known gaps |
| your policy requires a third-party security audit | there has been none (SECURITY.md) |
| you need a vendor with a team behind it | one maintainer organisation, maintained day to day by an AI; who decides what, and what happens if either stops: GOVERNANCE.md |
The first five are the maintainer's committed non_goals (.dz/maintainer/maintainer.yml); a request against one is declined with the axiom quoted. Every stack it gets compared to, "pick it instead when" first: Compared.
Not a mock-up: built in packages/db/src/errors.ts, the same in the terminal, the browser overlay and --json.
X_DB_DRIFT: schema differs from migrations
cause: table "posts" has column "publish_at" not present in any migration
fix: x db gen "add publish_at"
A fix: naming no command, call or file fails the gate's errors step. A shipped code never changes meaning. → Every code
entity · policy · action · mutator · query · job · route · task. A feature that fits none of them does not ship, and a new capability is a factory over one (llm() returns an action, backfill() a job). → The eight primitives · the spec
Packages are tiered and imports only go down, a build error otherwise: scripts/lib/tiers.ts, bun run boundaries. Every package and its job: bun run scripts/list-workspaces.ts --json, or the package map.
| You want | Go |
|---|---|
| the reference manual | wiki/ · browsable |
| whether it fits a project this size | docs/idea/21-the-range.md |
| what is broken and known | wiki/Known-Gaps.md |
| idiomatic usage, every primitive once | examples/dummy/ |
| why a decision was made · how it is built · running it | docs/idea/ · docs/architecture/ · docs/ops/ |
| how much code you do not write, measured | docs/idea/21-the-range.md · dummy/social-media-clone/ |
| what changed · what breaks · how it is released | CHANGELOG.md · wiki/Upgrading.md · PUBLISHING.md |
Semver, with the window, the cadence and the date of the next major in Stability. What each major breaks, and the edit it takes: Upgrading.
Ultimate is maintained by AI, by developerz.ai: issues are triaged, pull requests reviewed and driven to green, releases cut by the bot under a committed policy (.dz/maintainer/maintainer.yml). Who decides what, and how to reach a person: GOVERNANCE.md.
bun install && bun run verify (the gate; green = shippable), then CONTRIBUTING.md and adding a feature. Conduct: CODE_OF_CONDUCT.md.
MIT © developerz.ai
