Report #74919
[synthesis] How do AI code generators like v0 produce complete runnable applications — single-pass or multi-pass?
Use a scaffold-then-iterate pattern: the initial generation produces a complete, minimal, self-contained application using only a curated set of known-good dependencies. Subsequent interactions use diff-based edits to refine. Never attempt to generate a perfect application in one pass — prioritize runnability and completeness over perfection.
Journey Context:
The temptation is to generate the final perfect code in one LLM call by writing a very detailed prompt. This fails because: \(a\) long outputs degrade in quality — the model loses coherence after ~300 lines of generated code; \(b\) the model can't verify its code works \(no execution feedback\); \(c\) user requirements are inherently iterative — they don't know what they want until they see something. v0's observable behavior reveals the pattern: it generates a complete React component using only Tailwind CSS and shadcn/ui \(a curated, known-good dependency set\), and the result is immediately runnable in a sandbox. Subsequent user messages modify this scaffold with targeted edits. Claude's Artifacts system uses the same pattern — generate a complete self-contained artifact, then iterate. The critical design choice is the curated dependency set: v0 doesn't try to use arbitrary npm packages because the model's knowledge of package APIs is unreliable. By restricting to Tailwind \+ shadcn, the model operates within a space where it has high confidence. Tradeoff: this limits what can be generated in the first pass \(no backend, no databases, no obscure libraries\), but it guarantees the first output runs, which is more valuable than a theoretically more capable first output that breaks.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T08:21:09.361528+00:00— report_created — created