Vibe Coding (6) — Build #2: A SaaS Waitlist Landing Page in v0
In this guide, you will build a complete SaaS waitlist landing page — the kind of page indie hackers and pre-launch founders use to gather early signups before their product is ready. We'll cover the hero, value proposition, feature highlights, social proof, FAQ, and the waitlist email-capture form. By the end of this article, you'll have a polished waitlist page live at a .vercel.app URL. Article 07 will then connect the form to a real database (Supabase) and send welcome emails to signups.
Difficulty: ★★★☆☆ (Slightly harder than a portfolio — more sections, more marketing copy decisions)
Required Tools: v0 (Free or Premium) + your product concept
Updated: May 2026
Overview
A SaaS waitlist landing page is the second-easiest first vibe coding project after a personal portfolio. Like the portfolio, it's a single page with no complex navigation. Unlike the portfolio, it's a marketing artifact — its job is to convert visitors into email signups. Every section, every word, every design choice should serve that goal. The bar for a waitlist landing page is higher than for a portfolio because the success criterion is measurable (signups per visitor) rather than vibe-based (does it land you good conversations?).
This article walks through the build end-to-end using a hypothetical SaaS concept ("PromptVault" — a tool to organize and share AI prompts) as the running example. The same patterns apply to any pre-launch SaaS waitlist: indie-hacker side projects, AI-tool launches, B2B SaaS in stealth, consumer apps, anything where you're collecting interested email addresses before the product is ready. Substitute your real product concept as you read.
The article focuses on building the landing page structure and content. The waitlist form is a placeholder in this article — submissions don't go anywhere yet. Article 07 covers connecting the form to Supabase (so submissions actually save), plus sending a welcome email via Resend. Keeping these as separate articles matters: a clean landing page that doesn't capture emails properly is still useful (you can manually export from Supabase later); a database integration on top of a broken landing page is wasted effort. Build the page first; wire up the data layer second.
Who This Is Useful For
What You Will Build
A complete SaaS waitlist landing page with these sections:
By the end of the article:
What You Need
Step 1 — Define Your Product Concept and Value Prop
Just like the portfolio (Article 04), the single highest-leverage step is happening before you open v0. Before prompting, write down — in clear language — what your product is and who it's for.
The minimum content you need:
Worked example for our PromptVault concept:
Be honest about whether your product concept is clear enough to write a waitlist page about. If you can't fill in the items above in 15 minutes, the issue isn't v0 — it's that you don't yet have a sharp enough product concept. Spend more time on the concept before building the page.
Step 2 — Study Reference SaaS Landing Pages
Spend 20 minutes browsing reference sites before opening v0. Different from the portfolio reference set — SaaS waitlist pages have their own visual conventions worth absorbing.
The two flagship references for 2026:
Additional references worth visiting:
For each reference, note:
The cross-cutting patterns you'll notice across great SaaS landings:
Step 3 — Write the Initial Prompt
Open v0. Set model to v0 Pro (good balance for a landing page build). Paste a structured prompt that includes your product concept and the landing page structure you want.
A working template you can adapt:
Build me a SaaS waitlist landing page for [Product Name].About the product:
Name: [Product Name]
Value prop: [your one-sentence value prop]
Target audience: [specific audience]
Stage: pre-launch, collecting waitlist emails before product ships Page structure (in order):
1. Hero
- Big headline (the value prop, in 8-12 words)
- Supporting copy (~30 words below the headline)
- Email capture form: single email input + "Join waitlist" button
- Optional: a small badge above the headline ("Coming Spring 2026")
- On the right side (desktop): a clean product visualization or screenshot placeholder
2. Social proof bar
- Either a row of company logos (placeholders) OR a count of waitlist signups OR a credibility statement
3. Features section
- Heading: "Why [Product]"
- 3 feature cards: [Feature 1 title + description], [Feature 2], [Feature 3]
- Each card focuses on user benefit, not the feature itself
4. How it works
- 3 numbered steps showing the user journey
- [Step 1: ...], [Step 2: ...], [Step 3: ...]
5. Pricing preview
- A simple "Pricing" section saying "Free during beta — paid plans start at $9/mo when we launch"
6. FAQ
- 5 questions: When does it launch? What's the pricing? How is this different from [competitor]? What about [specific concern]? How do I stay updated?
7. Final CTA
- Another email capture, with framing like "Join 1,200+ others waiting for [Product]"
8. Footer
- Small footer with copyright, social links, contact email
Style direction:
Premium SaaS feel like Linear or Vercel
Restrained color palette: dark background or warm off-white, one accent color [pick one: indigo / sage green / amber]
Refined typography: clean sans-serif (Inter or Geist), strong hierarchy, generous line-height
Generous whitespace between sections
Subtle hover states; no aggressive animations Make it fully responsive. Mobile email capture should be prominent (form fields should be tap-friendly, button full-width).
v0 will generate the complete landing page in 60–120 seconds. The output will be reasonably polished but generic — exactly what you want for a starting point.
Step 4 — Evaluate the First Generation Critically
When the first generation lands, spend 5 minutes evaluating it before changing anything.
Structural checks:
Marketing checks:
If the structure is off, fix it with a focused prompt. If the marketing copy is off, fix that separately (you'll do most marketing copy work in Step 5).
Common first-generation issues:
Step 5 — Rewrite the Marketing Copy in Your Own Voice
This is the highest-leverage step in the build. v0 generates plausible marketing copy, but it tends toward generic, slightly cheesy SaaS-speak ("Supercharge your workflow! Effortless productivity!"). The best waitlist landing pages have specific, founder-voice copy that sounds like a real human wrote it.
Rewrite each section's copy with a specific prompt:
Rewrite the Hero copy with these requirements:Current hero:
[paste what v0 currently has]
Rewrite goals:
Drop generic marketing words ("supercharge", "effortless", "revolutionary", "next-level")
Write in plain, direct language a real founder would use
The headline should make a specific promise, not a vague claim
The supporting copy should explain WHO it's for in one breath
Match the voice of [reference: e.g., Linear's homepage, or Cal.com's] My audience: [specific audience]
My value prop in plain language: [your value prop]
Don't change layout — only the words.
Repeat this approach for the Features section, the How It Works section, and the FAQ. Each rewrite takes 5–10 minutes and is what makes the difference between "this could be any SaaS landing page" and "this is clearly someone specific, building something specific."
Special attention to the FAQ. The strongest waitlist landings have FAQs that surface real founder honesty — not "When does it launch?" but "Why is this different from [the obvious competitor]?" and "What if I sign up and never hear back?" Real questions, answered honestly, build trust.
Step 6 — Polish the Design (Light Version)
This article focuses primarily on structure and copy. The deep polish work in Article 05's portfolio polish style isn't strictly necessary for App #2 — a SaaS waitlist with strong copy and basic styling outperforms a beautifully designed page with weak copy. But spend 20 minutes on basic polish before publishing:
Quick polish prompts that pay off:
Polish the design with these changes:Use [Inter / Geist] as the body font, [Geist / Cal Sans / IBM Plex Sans] for headings
Color palette: [warm off-white #FAF9F6] background, [dark charcoal #1A1A1A] text, [single accent: indigo #6366F1] for primary CTAs and key emphasis only
Generous vertical spacing between sections (120-160px on desktop)
Make the email capture form in the hero visually inviting: large input, full-width on mobile, button that feels confident not aggressive
Hover states should be calm — fade transitions over 200ms, not bouncy
Ensure mobile experience is excellent — large tap targets, legible typography, no horizontal scroll
You can do deeper design polish later. For now, "polished enough to be taken seriously" is the bar.
Step 7 — Add the Email Capture Form (Placeholder for Now)
By default v0 will have built basic email forms in the hero and footer CTA. The forms should already accept input and show a "thanks!" message on submission. That's fine for this article — the form is functional from a user's perspective, but submissions aren't actually saved anywhere yet. Article 07 will wire this up to Supabase.
Verify the forms work as users would expect:
If any of these are missing or broken, fix with a focused prompt:
Improve the email capture form behavior:Validate that the email format is valid (show a friendly error if not)
After successful submission, show a thank-you message in place of the form: "You're on the list. We'll email you when we launch."
The thank-you message should include a small bonus — "Follow us on Twitter while you wait → @ProductHandle"
Add the same behavior to the footer CTA form
At this point, the form behaves like a real waitlist form to anyone using the page. The fact that submissions don't yet save to a database is invisible to users — that's an Article 07 problem to solve next.
Step 8 — Publish to Preview and Share
Click Publish in v0's top-right. For now, choose Publish to Preview — you're not ready for Production until Article 07 wires up the actual data layer. The Preview URL is fine for sharing with 5–10 trusted people for feedback.
Share with three categories of reviewers:
Specific feedback questions to ask:
Use the feedback to iterate. Most landing pages need 2–3 rounds of copy revision before they feel sharp. Don't move to Article 07 until the page reads cleanly to outsiders.
Common Mistakes to Avoid
Three patterns that derail SaaS waitlist landing pages.
Mistake #1: Vague value props. "Productivity tools for modern teams" tells a visitor nothing. Specific value props convert; vague ones don't. If a friend can't repeat back what your product does after reading your hero, the hero is broken.
Mistake #2: Feature-language instead of benefit-language. "Powerful tag system with AI-powered suggestions" describes what the product is. "Find any prompt you wrote 3 months ago in 5 seconds" describes what the user gets. The latter converts 3-5x better.
Mistake #3: Fake social proof. Putting "Featured in TechCrunch" when you weren't, or showing customer logos for companies that aren't customers, destroys trust the moment someone notices. Use honest signals — even small ones like "Build in public on Twitter — follow along" or "Founded by [your background]" are more credible than fake credentials.
Going Further
Set a target signup count before publishing more widely. A waitlist with 200 signups is worth showing to investors. A waitlist with 12 signups is worth quietly iterating. Decide your threshold before you start promoting the page.
Connect the analytics. Vercel Analytics is one click to enable. Knowing how many visitors you get, where they come from, and what % convert is essential — without it you're guessing whether changes help or hurt.
Plan the post-launch sequence. When you do launch the product, what will you send to your waitlist? A "we're live" email is a minimum, but better is a small sequence: early access for waitlist, a small launch discount, a personal note from you. Sketch this now so you're not scrambling when launch time arrives.
Read the next article — Article 07 connects the form to a real database (Supabase) and adds welcome emails via Resend. This is what transforms your waitlist from "looks like it works" to "actually saves every signup and confirms them."
Key Takeaways
Here's what you learned in this guide:
Your SaaS waitlist landing page is now live at a Preview URL — looking professional, reading clearly, and ready to be promoted. The hardest part — defining the product and writing copy — is done. Article 07 handles the technical layer: connecting the form to a real database so submissions actually save, and adding welcome emails so every signup gets an immediate confirmation.
