# How to Vibe Code Your Own GetWaitlist (and Stop Paying for It)

> Pre-launch waitlist and viral referral marketing SaaS tool

- Site: https://getwaitlist.com
- Category: Marketing & Growth SaaS
- Verdict: **Solid side project** (75/100 vibecodeable)
- Estimated effort: 2-3 weekends

## Verdict

Build a self-hosted personal clone in a weekend, but keep paying if you rely on their hosted widget uptime for live product launches.

GetWaitlist is a classic full-stack SaaS CRUD app with a viral loop twist. The database logic for tracking referral links and computing queue positions is straightforward SQL. The real friction points are building a bulletproof embeddable script that loads cleanly on third-party sites, and wiring up reliable email delivery with custom DNS verification. For a personal project or internal portfolio piece, you can spin this up quickly with Next.js and Turso. However, replacing a battle-tested production waitlist tool used by thousands of live campaigns makes little sense if your goal is actual pre-launch marketing rather than learning.

### What you can't replicate

- The exact historical brand trust and embed footprint across external web pages
- Existing integrations with third-party no-code builders

## What it does

GetWaitlist allows creators and indie developers to capture early user demand, collect survey feedback, stop spam via CAPTCHA and email checks, and drive viral growth through unique referral links and leaderboards.

### Core features

- Waitlist management dashboard with multiple lists
- Signup queue calculation and referral tracking via `ref_id`
- Embeddable JavaScript client widgets and hosted landing pages
- Custom questions and dropdown survey inputs
- Email rules (blocking free/personal emails, permitting enterprise/university domains)
- Automated transactional emails (welcome, verification, referral, offboarding) and broadcast blasts
- Leaderboard calculation and API retrieval
- CAPTCHA and spam verification steps

## The business

### Pricing

- Basic: $15/mo
- Advanced: $50/mo
- Pro: $250/mo

Founded 2020.
Team size: Small indie team.

## The hard parts

- Delivering a secure, zero-dependency embeddable JavaScript widget that injects cleanly into third-party sites via iframes or shadow DOM without CORS collisions
- Configuring robust custom email domain sending (DNS SPF, DKIM, DMARC records) and bulk broadcast background queues
- High-concurrency race condition handling when recalculating queue positions upon successful referrals

## How to vibe code GetWaitlist

### Prerequisites

- Node.js (free): Runtime environment for building and running the Next.js full-stack application
- GitHub (free): Source control and repository hosting for your deployment pipeline

### Recommended AI tools

- Claude Code: Autonomous terminal agent ideal for scaffolding full-stack CRUD apps, writing API routes, and debugging frontend widgets

### Stack

- Frontend: Next.js (App Router, Tailwind CSS)
- Backend: Next.js Server Actions & API Routes
- Database: Turso (SQLite at the edge)
- Auth: better-auth
- Payments: None (Personal use clone)
- Other: Resend for transactional emails, Inngest for background email blasts and drip sequences

### Hosting

- Cloudflare (Hosting the Next.js frontend, API routes, and Turso edge database connection for near-zero ongoing costs): $0-5/mo

### Build guide

1. **Project Scaffolding and Database Schema** — Initialize a Next.js project with Tailwind CSS and Drizzle ORM connected to a Turso SQLite database. Define tables for organizations, waitlists, signups (with referral IDs, queue position, CAPTCHA verification status, and metadata JSON), and custom questions.

```
Create a new Next.js app with Tailwind CSS and configure Drizzle ORM with Turso. Write the complete database schema for a waitlist SaaS: organizations table, waitlists table (with settings like hide counts, permitted domains, spam rules), signups table (id, waitlist_id, email, position, referred_by_id, captcha_valid, metadata json), and custom_questions table. Ensure foreign keys and indexes on email and referral tokens are correctly established.
```

2. **Waitlist Management Dashboard** — Build the authenticated dashboard UI using Next.js App Router where users can create multiple waitlists, toggle settings (domain restrictions, CAPTCHA enforcement), and view a data table of signups with CSV export.

```
Build the dashboard pages in Next.js App Router for managing waitlists. Create a list view, a creation modal, and a detailed waitlist view with tabs for Settings, Signups table (with filtering by CAPTCHA status and metadata), and Analytics. Use better-auth for protecting dashboard routes.
```

3. **Viral Referral Engine and Signup Flow** — Implement the public-facing hosted waitlist page and signup form logic that handles incoming `?ref_id=` tracking parameters, assigns sequential queue positions, and generates unique share links for new signups.

```
Implement the public waitlist signup API endpoint and hosted landing page view. When a user submits an email and custom question answers, check email rules (block free/personal domains if configured), record the signup, handle referral attribution if a `ref_id` cookie or query param exists, calculate their queue position, and return their unique referral link and current position.
```

4. **Embeddable JavaScript Widget** — Develop a lightweight, embeddable client-side script (`getwaitlist.min.js`) that safely injects an iframe or shadow-DOM widget into third-party websites, allowing external collection of signups.

```
Create a vanilla JavaScript embed script (`getwaitlist.min.js`) that targets a container div on external websites, renders a responsive waitlist form, handles form submission via fetch to our backend API, and displays success state with the user's referral link and queue position. Ensure proper CORS headers and CSS scoping so it doesn't break host site styles.
```

5. **Email Automation and Broadcasting** — Integrate Resend and Inngest to send automated welcome, verification, and referral trigger emails, as well as bulk email broadcast blasts to segmented waitlist members.

```
Integrate Resend and Inngest into the Next.js backend. Set up automated transactional email triggers for new signups (welcoming them with their position and referral link) and successful referrals. Build an 'Email Blast' dashboard feature that allows sending batched background broadcast emails with template variable replacement and basic audience segmentation.
```

6. **Leaderboard and CAPTCHA Integration** — Add Google reCAPTCHA verification to the signup form flow and build a public leaderboard view displaying top referrers.

```
Add Google reCAPTCHA v2/v3 verification to the public signup form and validate tokens server-side before saving signups. Also build a Leaderboard feature and API endpoint that aggregates signups by referral count, allowing users to embed or view the top referrers on their waitlist.
```

### Cost vs paying

**Starting costs (one-time):**

- Domain name (optional): $12/yr
- Total: ~$12 one-time

**Ongoing costs (monthly):**

- Cloudflare Workers / Turso DB: $0/mo
- Resend Email API (free tier): $0/mo
- Total: $0/mo

- Paying for the SaaS instead: $15/mo - $50/mo
- Build time: 16-24 hours
- AI tool credits: $20
- Break-even: N/A (Personal build)

## Sources

- [GetWaitlist Pricing Page](https://getwaitlist.com/pricing)
- [GetWaitlist Documentation](https://getwaitlist.com/docs)