v2: from scaffolder to app platform
geenius-mvp started as a scaffolder. As of today it behaves like a small app platform. This post is the changelog for the v2 push — fourteen features, each gated by the 18-shape test matrix and the browser smoke.
The data layer grew up
- Relations: a ref field type — entities reference each other, labels resolve at runtime, and the form gets a picker (crm: activities link to contacts).
- Search and filters on every entity page: text search over title fields, one chip row per select field, live counts.
- CSV import and export — the field config is the column mapping, imports are type-coerced and validated row by row.
- A charts view: bars by status (semantic tones), a monthly line over the date field, totals from the amount field. Ten views now.
One sentence to a running app
pnpm generate "a habit tracker with streaks" --db supabase
Claude synthesizes a spec, the spec is validated, and the existing demo pipeline scaffolds it — so a generated app rides exactly the same tested code paths as the built-in demos. The spec ships with the app for reshaping later.
The CLI is now an MCP server
The repo ships an .mcp.json: any MCP client gets scaffold_app, generate_app, deploy_app, doctor and list_capabilities. You can build and ship an app from a chat session without touching a terminal.
Apps stay current
pnpm upgrade-app re-applies template improvements to an existing app: untouched files update automatically, your edits are never overwritten, and conflicts land next to the file as .upgraded copies. The baseline is a per-file hash recorded at scaffold time.
And the rest
- A spec gallery — pnpm new my-app --demo invoicing (or booking, habits, expenses, hiring).
- Guided first-visit tours on demo pages; the hosted demos reset nightly via a Convex cron.
- An email feature: Resend when a key is set, a dev inbox always.
- An i18n scaffold via --lang en,de.
- An interactive spec builder on the demos page.
- pnpm agent-eval — a scripted rubric that scores whether an agent can go from zero to deploy-ready using only the public CLI. Current score: 6/6 in 28 seconds.
Every feature landed through the same loop: implement, run the 18-shape matrix, smoke it in a real browser, commit.