TypeScript / React / MetaObjects
A live AI app you can clone and read — one metadata spine drives the database schema, the API types, the LLM prompts, and the SSE protocol, and renaming a single field fails ten prompt templates and two generated artifacts in CI at once.
Wizards of Odd is a live AI "wizard council" app, built from scratch to be read. One metadata spine generates the database schema, the API types, the LLM prompts, and the SSE streaming protocol — and there's a ten-second command that proves it: rename one field, and twelve generated things fail in CI at once.
An LLM app declares the same shape in four places — the database schema, the API types, the prompt payloads, and the streaming protocol — and an AI agent editing one can leave the other three silently behind. "Locally coherent, globally divergent" is how these bugs ship: every file looks right on its own.
Wizards of Odd was built greenfield to answer one question in public: what if changing the shape of the data in one place was the only way to change it?
A single set of typed metadata files under metaobjects/ is the durable spine. From it, meta gen produces the database schema (Drizzle), the shared API types, the LLM prompt render handles, and the SSE streaming protocol — the last via a project-local template.streamFrame subtype that extends MetaObjects for this app's server-sent-event envelope. The entire generation pipeline lives in one file: metaobjects.config.ts.
Rename one field in a payload metadata file, then run the drift demo:
# rename `question` in metaobjects/meta-wizard-user-payload.yaml, then:
npm run demo:drift
Ten prompt templates and two generated artifacts fail at once. There is no way to change the shape of the data and forget one of the four surfaces — the model won't let the build pass. It takes about ten seconds, and it's the whole thesis in one command.
Since 2026-09-09 it has run MetaObjects 1.0.0, with the rename-one-field gate above wired into CI.
Doug works directly with teams evaluating MetaObjects. Tell us what you're building and we'll tell you, honestly, whether MetaObjects fits.
Email doug@dougmealing.com