Vibe Coding Your SaaS
Vibe coding — prompting AI tools to generate code and shipping it — has a reputation problem. People either think it's magic or a disaster waiting to happen. The truth is it's a multiplier: it amplifies what you already know. Here's how to use it well.
What "Vibe Coding" Actually Means
Vibe coding isn't "I describe an app and AI builds it." That doesn't work reliably yet.
It's closer to: you architect, AI executes. You make the decisions — data model, UX flow, edge cases — and AI handles the boilerplate, repetitive patterns, and first drafts that would otherwise take hours.
Done right, you can ship 3x faster. Done wrong, you end up with a pile of code you don't understand that breaks in production.
The Tools Worth Using
Cursor
The best AI-native code editor right now. Key features:
- Composer: describe a feature in plain English, get a full implementation across multiple files
- Chat: ask questions about your codebase, get context-aware answers
- Tab autocomplete: smarter than Copilot for multi-line completions
Start here. It integrates directly with your repo so the AI understands your entire codebase.
Claude (via API or Claude.ai)
Best for:
- Designing data models and schemas
- Explaining architectural tradeoffs
- Reviewing code for bugs before you ship
- Writing complex logic (auth flows, billing logic, API integrations)
Paste in your schema + requirements and ask "what's the cleanest way to implement this?"
v0.dev (by Vercel)
Best for UI. Describe a component, get Tailwind + shadcn/ui code instantly. Great for:
- Landing pages
- Dashboard layouts
- Onboarding flows
You're not designing, you're editing. That's a 10x speedup for most developers.
The Workflow That Actually Works
Step 1: Architect first, prompt second
Before you open Cursor, spend 15 minutes writing:
- Your database schema (even rough)
- The main user flows (e.g., "user signs up → creates project → invites teammate")
- The API endpoints you'll need
AI is bad at architecture. You are not. Do the thinking, then let AI do the typing.
Step 2: Scaffold the skeleton yourself
Set up your repo, install dependencies, and write your base layout by hand. When AI generates code, it needs context. A well-structured project gives it that context.
Step 3: Use Composer for full features
Once your skeleton is in place, use Cursor Composer to implement full features:
"Implement a
/api/projectsPOST endpoint that creates a new project for the authenticated user. Use Supabase. The project table has: id, name, user_id, created_at. Return the created project. Handle errors."
The more specific your prompt, the better the output.
Step 4: Review every line before committing
This is non-negotiable. AI makes confident mistakes. Common ones:
- Skipping auth checks on API routes
- Using deprecated library APIs
- N+1 database queries
- Hardcoded values that should be env variables
Read the diff. If you don't understand what a line does, ask the AI to explain it. If you still don't understand it after the explanation, rewrite it yourself.
Step 5: Test edge cases manually
AI-generated code handles the happy path well. It often misses:
- Empty states
- Permission errors
- Concurrent operations
- Rate limiting
Test these yourself before shipping.
Prompting Patterns That Work
The context dump
I'm building a SaaS for [target user] that [does X].
My stack: Next.js 14, Supabase, Stripe, Tailwind.
Here's my database schema: [paste schema]
Here's the existing file structure: [paste tree]
Now: [your request]
Always give context. AI with context is 5x more useful than AI without it.
The "how would you design this?" prompt
Before writing code, ask:
"I need to implement [feature]. What's the cleanest way to design this given [constraints]? Give me 2–3 options with tradeoffs."
Then pick an approach and implement it. This saves you from going down a dead end.
The review prompt
"Here's my implementation of [feature]. Review it for: security issues, edge cases I might have missed, performance problems, and anything that would cause bugs in production."
Do this before every meaningful PR.
What NOT to Vibe Code
Some things AI handles poorly. Avoid prompting for:
- Auth and security logic — write this yourself, or use a library like Clerk/NextAuth. AI-generated auth code frequently has subtle vulnerabilities.
- Database migrations — always write and review these manually. A bad migration in production is catastrophic.
- Payment flows — use Stripe's official docs and examples, not AI-generated Stripe code. Billing bugs are existential for a SaaS.
- Entire features you don't understand — if you can't explain what the code does, you can't debug it when it breaks at 2am.
The Mindset Shift
The best vibe coders aren't the ones who prompt the most. They're the ones who:
- Know their stack well enough to spot when AI is wrong
- Review code with the same rigor they'd apply to a junior dev's PR
- Use AI to accelerate decisions they've already made, not to make decisions for them
AI is your fastest junior developer. You're still the senior.