From the BUILD archive
Build Small or Go Home: Why Your First Vibe Coded App Should Do ONE Thing
Use one core action and a deliberately small first release to reduce complexity and learn sooner.
Originally published on BUILD 2025-11-26. Adapted from BUILD; updated September 28, 2026.
The full vision is tempting because an AI builder can create many screens quickly. But visible speed does not remove the interactions among data, permissions, states, and integrations. A smaller first build is easier to understand, test, and change.
Identify the core action
Ask what one outcome gives the user value. “Send an invoice” is narrower than managing clients, tracking expenses, scheduling, collecting payments, and producing reports. “Book a service appointment” is narrower than reviews, messaging, memberships, and referrals. State the action as a verb and object.
Use a feature limit as a heuristic
A useful starting heuristic is the core action, only the account capability genuinely required for it, and a way to view or confirm the result. Three is not a law. A safety-critical workflow may require recovery or review from the start; a public calculator may require no account at all. The principle is to include what makes the promise complete and defer unrelated expansion.
Write the first prompt around one outcome
Instead of asking for an invoicing platform with eight modules, ask for an invoice creator with client name, line items, totals, validation, and a downloadable result. State what should persist and what is explicitly out of scope. Then define acceptance checks before the tool writes code.
Expand from evidence
Once the core path works reliably, observe target users. Add the next feature because it removes a repeated obstacle or supports the business model, not because it appeared in a competitor's menu. Release timing depends on risk and readiness; “week one, week two” can be a planning rhythm, not a universal schedule.
Resist feature creep
Keep a separate backlog. When an idea appears mid-build, record the user problem, likely impact, and evidence needed. Do not insert it into the current prompt unless the core path cannot function without it. This protects scope and makes later prioritization easier.
Ask whether value survives without it
For each proposed feature, ask: Can the target user still get the promised outcome without this? If yes, it may wait. Also ask whether deferring it creates harm. Permission enforcement, payment verification, privacy information, and recovery are not decorative extras when the product needs them.
Signs the first slice is too large
The promise needs several “and” clauses. Expected results are hard to state. One change affects many unrelated areas. Testing requires dozens of accounts or dependencies before any value appears. The build repeatedly replaces working parts. These are signals to cut a vertical slice that starts with a real input and ends with a real outcome.
Small does not mean careless
A narrow app still needs honest copy, useful errors, mobile basics, appropriate data protection, and a reliable main path. It should state what it does not do. A controlled beta is not permission to expose data or charge incorrectly.
Build one complete thing, verify it, and learn. Then expand with the vibe coding checklist and a task-based testing workflow.
