MVP Factory
A Proposal In, A Live Demo URL Out
An internal prototype that reads a project brief into a structured spec, fills a pre-built scaffold with the variable parts using a local model, boots it behind a tunnel and returns a live URL.
- Industry
- Internal / BrainGenz
- Location
- Internal
Responding to a project brief with a working demo rather than a written proposal takes about an hour of manual work each time, which means it only happens for the briefs someone has time for.
- Building a bespoke demo per brief takes roughly an hour end to end
- A local 31B model cannot reliably write a full application from scratch
- An MVP that fails to compile is worse than no demo
- Each demo needs a public URL without standing up new infrastructure
- Unvalidated model output corrupts the generated project silently
A control plane that extracts a structured spec from the brief, picks a pre-built scaffold, fills only its placeholders with schema-validated model output, boots it and returns a public URL.
- Parse the brief into a small JSON spec describing brand, user and use case
- Select from a scaffold library with a confidence score, defaulting to the most general option when unsure
- Fill only placeholders rather than generating application structure
- Validate every model response against a schema and retry on failure
- Boot frontend and backend on unique ports and expose them through a tunnel
- Poll a health endpoint before returning the URL
How it was built
The original ask was full application generation from a brief. A 31B model running locally cannot reliably write a Next.js and TypeScript app from scratch: it produces broken imports, missing components and type errors, and the deployed result fails to compile a large share of the time. Even much larger models struggle without heavy guardrails.
So the design does not ask it to. Two or three clean scaffolds are pre-built, and the model fills only the variable parts: form labels, the system prompt, colour tokens, the output shape, sample data. The result looks generated and is a clean template with informed inserts. That is the only version that boots reliably, and stating the limit was the point at which the project became buildable.
The brief becomes a small JSON spec, then a scaffold is chosen with a confidence score, defaulting to the most general option when the model is unsure. Each placeholder fill is validated against a schema, so a bad response is retried rather than allowed to corrupt the build.
A prototype with a single intended user and no customers. Adding a scaffold to the library is roughly an hour or two of work rather than a redesign, which was the main thing the architecture was chosen to protect.
- Each demo hand-built in about an hour
- Demos only produced for some briefs
- Scaffold-and-fill pipeline replaces full generation
- Schema validation prevents malformed builds
- Prototype only, with no customers
