Vibe coding workflow: ship real products with AI without losing the plot
Vibe coding got its name from the loose, riff-driven way it feels: you describe an idea, the agent builds, you steer by reaction. It's fun for prototypes and dangerous for anything you want to ship. The 2026 version of vibe coding adds structure where it matters and keeps the loose, fast feeling where it's free. The result is a workflow that ships real products in 2 to 4 weeks while still feeling improvisational at the keyboard.
The four-phase loop
A grown-up vibe coding workflow follows four phases. Skip any of them and the project drifts.
- Riff. Talk through the idea with an LLM (Claude, ChatGPT, or a notebook) for 15 to 30 minutes. The goal is to land a one-paragraph problem statement and the rough shape of a v1. Don't write code in this phase.
- PRD. Write a structured PRD from the riff output. 800 to 1500 words. Include goals, personas, requirements with priorities, success metrics, and a tool-specific appendix (Supabase tables for Lovable, file tree for Cursor, component list for v0).
- Scaffold. Hand the PRD to an AI builder (Lovable, v0, Bolt) and let it produce a working v1 in one or two prompting sessions. Don't deviate from the PRD; iterate within it.
- Refine. Move the code to your editor (Cursor, Windsurf) or terminal (Claude Code, Codex). Add the long-tail features the builder didn't handle well: integrations, edge cases, error paths, polish.
Each phase has a different vibe. Phase 1 is improvisational. Phase 2 is structured. Phase 3 is delegational. Phase 4 is meticulous. The mistake most vibe coders make is staying in Phase 1 vibes for Phase 4 work.
Why vibe coding fails when it fails
The pattern is consistent. Someone has a strong Phase 1 (the idea is good), an okay Phase 3 (the builder produces a working v1), and then they skip Phases 2 and 4 entirely. They never write the PRD, so the agent's choices in Phase 3 are based on whatever the prompt happened to say that session. They never refine in Phase 4, so the v1's rough edges become the v2's bugs.
The cure is structure in two specific places. Write the PRD between Phase 1 and Phase 3, even if it's only 1000 words. Move to a structured editor in Phase 4, even if Phase 3 felt fast and good.
The tools, mapped to the phases
| Phase | Tools that fit | Why |
|---|---|---|
| Riff | Claude, ChatGPT, Notion, a friend over coffee | The model is a sounding board; speed of conversation matters more than output format |
| PRD | MakeMyPRD, ChatPRD, hand-written | Structured output that fits the tool you'll scaffold with |
| Scaffold | Lovable, v0, Bolt, Replit | Generates the v1 from the PRD; deploys to a URL |
| Refine | Cursor, Windsurf, Claude Code, Codex | Reads your repo, edits across files, runs tests, ships the long tail |
Picking a builder in Phase 3 follows the usual rules: Lovable for CRUD, v0 for UI-led, Bolt for stack flexibility, Replit for non-JS. Picking a refine tool in Phase 4 follows yours: editor preference, team workflow, GitHub-vs-local.
A real workflow in a single project
Project: StreakNote, a weekly note-taking tracker. Users write a short note every Sunday, see their streak, and get a Sunday morning reminder email if they haven't written in 7 days.
Phase 1: Riff (45 minutes)
Open a Claude conversation. Start with "I want to build a weekly journaling app that doesn't feel like another habit tracker. What's the friction with existing tools?" Talk for 30 minutes. Land on: the existing tools (Day One, Reflect, etc.) are daily-pressure tools. People who want weekly journaling don't have a fit. They want Sunday morning, 30 minutes, one prompt, and a streak. End of phase 1.
Phase 2: PRD (30 minutes)
Write the PRD. 1,200 words. Eight sections plus a Lovable appendix.
Key sections:
- Goals: 100 users at $3/mo within 90 days. Median time-to-first-note under 5 minutes. 70% week-2 retention.
- Personas: Solo founders who want weekly reflection; therapists who recommend journaling to clients.
- P0 requirements: weekly prompt, streak counter, Sunday morning reminder, password-less auth, $3/mo paywall after 4 free weeks.
- Lovable appendix: Supabase tables (
users,notes,streaks), RLS policies, weekly cron via Edge Function.
Phase 3: Scaffold in Lovable (3 hours)
Paste the PRD into Lovable. The agent provisions the Supabase tables, generates the UI, and wires the reminder cron. After 4 prompting sessions:
- Working signup + password-less auth
- Note-writing screen with the prompt
- Streak counter
- Sunday cron + Resend integration
Deploy to a Lovable URL. Test by writing a note on Sunday, check that the cron fires next week.
Phase 4: Refine in Cursor (1 week, 2 to 3 hours/day)
Export the Lovable project to GitHub. Open in Cursor. Add:
- Stripe paywall for week 5+ (Lovable's billing flow was rough)
- Error state when Supabase write fails (default Lovable output had a silent failure)
- Email template polish (the default template said "Hi !" awkwardly)
- A small "What changed this week?" weekly digest emailed to paid users
- Custom domain (streaknote.app) and proper auth callback URLs
Acceptance metrics for the workflow:
- Total time from first riff to deployed v1: under 5 days
- Hours of focused work: under 25 across all four phases
- Cost: Lovable Pro $20, Cursor Pro $20, Stripe + Supabase + Vercel under $30/mo for the first 50 users
Result: v1 shipped, with 12 paying users by day 30. Two phases (PRD and Refine) prevented the usual vibe coding failure modes: scope drift in Phase 3 (because the PRD anchored the agent) and rough edges in production (because Cursor cleaned them up in Phase 4).
How to keep the vibe alive without losing the product
The discipline is "structure where it matters, looseness everywhere else." Phases 1 and 3 should feel improvisational. Phases 2 and 4 should feel like grown-up product work. Mixing the vibes makes both worse.
A few tactical rules that hold up:
- Time-box Phase 1. 30 to 60 minutes max. Phase 1 vibes feel productive but produce little. If you've been riffing for 2 hours, you've left product work on the table.
- Don't write code in Phase 1. The temptation is real. Resist. Phase 1 is for landing the problem statement, not for prototyping.
- Treat Phase 2 as a contract. Once the PRD is written, the agent's job is to execute it. If the PRD is wrong, fix it in Phase 2 form, not by re-prompting in Phase 3.
- Phase 3 should feel fun. If it doesn't, the PRD is too detailed or the tool is wrong. Step back, rewrite, restart.
- Phase 4 should feel slow. That's correct. The long tail is where products earn their living. Don't rush it.
How to choose tools for each phase
- Phase 1 tool: whichever LLM you riff with naturally. Claude for long-form reasoning, ChatGPT for quick takes, Gemini if you live in Google Docs.
- Phase 2 tool: a PRD generator that fits your phase 3 builder. MakeMyPRD outputs the eight-section structure that maps cleanly to Lovable, v0, Bolt, Cursor, and Claude Code. ChatPRD has per-tool templates. Hand-writing is fine if you're fast.
- Phase 3 tool: pick by the project shape. Database-heavy: Lovable. UI-led: v0. Stack-flexible: Bolt. Non-JS: Replit.
- Phase 4 tool: pick by your editor preference. VS Code muscle memory: Cursor. Plan-then-execute taste: Windsurf. Terminal native: Claude Code or Codex.
- Don't add a fifth tool. Adding "and also Aider" or "and also Plandex" usually doesn't change outcomes. Master 4 tools across the 4 phases.
- Stay flexible by quarter. Tools evolve. The right pick for Phase 3 in February 2026 might shift by November 2026. Re-evaluate quarterly.
FAQ
Is vibe coding really good enough for production?
The Phase 3 output usually isn't. The Phase 4 refinement makes it production-grade. Teams that skip Phase 4 ship broken products; teams that do all four phases ship real ones. The vibe is the entry, not the whole thing.
How is this different from "just using AI to code"?
Most "AI coding" workflows are unstructured Phase 3 work without the riff, the PRD, or the refine. They produce demoware. The four-phase loop adds structure at the two specific points (PRD, refine) where structure has the biggest leverage.
What if the PRD takes longer than the build?
That's a sign you're either over-writing the PRD or the project is small enough that a one-page brief would suffice. A PRD for a weekend project should land in 30 minutes. A PRD for a 3-month project might take 3 hours. If your PRD is taking days, the scope is probably wrong.
Can I skip Phase 4 if the v1 looks good?
Probably not. The Phase 3 output usually has 3 to 8 issues that don't show up until real users hit it: error states, edge cases in form validation, email deliverability, mobile rendering, accessibility. Phase 4 catches these. Skipping it works for personal projects and fails for anything with users you don't already know.
Does this work for teams, or only solo developers?
It works for both. Solo, you do all 4 phases. On a team, Phase 1 is the founder; Phase 2 is product; Phase 3 is a builder-focused engineer; Phase 4 is the broader team. The phase boundaries map cleanly to team boundaries, which is convenient.