kit·starter·updated 2026-05-19

Waitlist Kit

A real waitlist page. In an hour. With referrals.

Next.jsResendSupabase

Email capture, double opt-in, referral tracking, and an admin dashboard that actually shows you what's happening. Built to ship in one sitting.

Install

~60 seconds
terminal
bash
npx create-bitroot@latest my-waitlist --kit waitlist-kit
cd my-waitlist
cp .env.example .env.local
npm run dev
~/ what's inside

Already wired, so you can skip to features.

Email capture with double opt-in

Collect, confirm, and track. Nobody on your list should be there by accident.

Referral tracking

Each subscriber gets a unique link. We count, you rank, you reward.

Admin dashboard

See signups, referrals, sources, and export to CSV. Password-protected.

~/ the stack behind it

Every dependency has a reason.

  • Next.js 16
    Static landing + API routes in one project.
  • Supabase
    Postgres + row-level security. Free tier is generous.
  • Resend
    Confirmation + referral emails.
~/ environment

Here's every env var, labeled.

Copy to .env.local. The included first-run script refuses to boot if any of them are missing — you'll know immediately.

.env.example
dotenv
NEXT_PUBLIC_APP_URL=http://localhost:3000
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_KEY=eyJhbG...
RESEND_API_KEY=re_...
ADMIN_PASSWORD=change-me
~/ walkthrough

Zero to first deploy.

This is the exact sequence we'd run from a blank directory. Steps are reproducible — if one fails, we want to know.

  1. 1. Create a Supabase project

    Go to supabase.com, new project, copy the URL and service key. Run our seed script to create the subscribers table.

    npm run db:seed
  2. 2. Wire up Resend

    Verify your sending domain (5 min), drop the API key into .env.local, and ship.

~/ known gotchas

The stuff that ate our afternoons.

Things we'd have wanted a heads-up on. Logged as we hit them.

  • !Supabase RLS is ON by default — if the admin dashboard shows zero rows, check you're using the service key, not the anon key.
  • !Referral codes need to be URL-safe. We use nanoid, not uuid.
when not

If you need scheduling, A/B testing, or a full landing page builder, this is too lean. This kit is one job: collect emails well.

license: MIT·star on github →

Got stuck, or want this shipped end-to-end for you? bitroot.club builds custom products for founders. →