I Built a SaaS in 3 Hours Using Vibe Coding — Here's Exactly How
Hour-by-hour breakdown of building and shipping a real subscription product using AI tools.
I built a SaaS product called QuickBio — an AI-powered link-in-bio page builder — in one afternoon. Here's the honest hour-by-hour breakdown of what I built, what went wrong, and what I learned.
Tools used: Cursor (coding), Supabase (auth + database), Stripe (payments), Vercel (deployment).
The Idea
QuickBio: You paste your Twitter/X profile URL, AI generates a beautiful link-in-bio page from your bio, pinned tweet, and recent content. You customize it, set a custom domain, pay $7/month to publish.
Simple enough to build in a day. Clear enough to explain in one sentence. Priced low enough that the purchase decision is friction-free.
Hour 1: Scaffold the App
I opened Cursor and started with this prompt in Composer:
Build a Next.js 14 app called QuickBio. It's a link-in-bio page builder. Stack: Next.js App Router, TypeScript, Tailwind CSS, Supabase auth Pages needed: - / (landing page with hero, features, pricing) - /dashboard (protected, shows user's pages) - /create (form to input Twitter URL + customize) - /[username] (public bio page) Start with the landing page and routing structure. Use shadcn/ui for components.
Cursor generated the full project structure in about 4 minutes. The landing page came out clean. Routing was correct. I spent the remaining 45 minutes in Hour 1 refining the landing page copy and the public bio page design.
Hour 2: Add Auth and Payments
The most complex part. My prompts for this hour:
Set up Supabase auth with email/password and Google OAuth. Add a middleware that protects /dashboard and /create routes. Store user sessions properly in the App Router.
Add Stripe subscriptions. One plan: "Pro" at $7/month. - /api/create-checkout creates a Stripe Checkout session - /api/webhook handles subscription events (created, deleted) - Add a "isPro" field to the user profile in Supabase - Gate the publish feature behind isPro check
Auth worked on the first attempt. Stripe webhook took 3 iterations — Cursor kept missing the raw body parsing needed for webhook signature verification. Eventually fixed with a specific prompt about Next.js raw body handling.
Hour 3: Polish and Deploy
- Added form validation with proper error states
- Improved mobile responsiveness of the bio page template
- Added 5 preset color themes for the bio page
- Set up Vercel analytics
- Deployed to Vercel:
git push→ automatic deployment - Configured custom domain via Vercel dashboard
- Tested the full user flow: sign up → create bio → add payment → publish
Results After 30 Days
I shared it on Twitter with a "built this in 3 hours" post. Results:
- 847 sign-ups in the first week
- 34 paying customers at $7/month = $238 MRR
- Time invested: ~3 hours to build + 2 hours of customer support responses
- Monthly infrastructure cost: ~$25 (Supabase + Vercel)
Not life-changing money. But $213 profit/month from 5 hours of work validates the concept. The next 30 days are about growth — not rebuilding the product.
Could I have done this without vibe coding? Maybe — in 2-3 weeks. Vibe coding compressed that into an afternoon. The leverage is real.
→ Ready to build your own? Start with our beginners guide or jump straight to the prompt templates.