Vibecode GetWaitlist

track this build6 phases, 20 steps, beginner friendly
YES · one-shottable
price $15/moyou'd save $180/yrbuild time one sittingcategory 📋 waitlistsreplaced by 0 people

Email capture with a referral counter. This site's waitlist was built exactly this way; it took one prompt.

the project pack5 files · written for this build, step by step
README.md
# GetWaitlist · indie build

A waitlist you own: one HTML snippet pasted into any landing page posts emails to your server, each signup gets a position and a personal referral link that moves them up the queue, bots are turned away, and an admin page shows growth and exports CSV. No third-party service holds your list.

Estimated effort: **one sitting**. Work `BUILD_PLAN.md` top to bottom · every phase ends in a check that has to pass before the next one starts.

## Stack

| Part | Choice | Why |
| --- | --- | --- |
| Runtime | Node 22, node:http and node:sqlite | a signup is one INSERT; a framework would outweigh the app |
| Database | SQLite in WAL mode | one file, transactional, easy to back up and export |
| Front end | A plain HTML form snippet | works pasted into any page with JavaScript disabled |
| Hosting | One small VPS behind Caddy | the snippet needs a public HTTPS endpoint |

## Before you start

Have every one of these ready. The plan assumes them from step one.

- [ ] **Node.js 22 or newer** · free
  - Why: Everything in this build runs on it: the server, the scripts, the tests.
  - Get it: Download the LTS installer from nodejs.org, or install with your package manager (brew install node, or nvm install 22). Restart the terminal afterwards.
  - Verify: node --version prints v22 or higher
- [ ] **A terminal and a code editor** · free
  - Why: Every step below is a command you type or a file you edit.
  - Get it: VS Code (code.visualstudio.com), Cursor or Zed. Open a folder for the project and use the editor's built-in terminal.
  - Verify: You can open a folder and run a command in its terminal
- [ ] **Git** · free
  - Why: History for your code, and the way most hosts deploy.
  - Get it: Install from git-scm.com or with your package manager, then run git init in the project folder once it exists.
  - Verify: git --version prints a version
- [ ] **The landing page you will paste the form into** · free
  - Why: Phase 4 is tested by pasting the snippet into a real page on a different origin, so you need one to paste into.
  - Get it: Any page you control: your site, a Carrd, a Notion page with an embed, or a blank HTML file served locally is enough to start.
- [ ] **A disposable-email domain list** · free
  - Why: Phase 1 rejects throwaway addresses. A maintained list saves you writing one.
  - Get it: Download the domains file from the disposable-email-domains project on GitHub into your repo as data/disposable.txt.
- [ ] **A random salt for hashing IPs** · free
  - Why: You store a salted hash of the signer's IP for rate limiting, never the raw address.
  - Get it: Generate once with openssl rand -hex 32 and put it in .env as IP_SALT. Changing it later resets the rate limiter, nothing else.
- [ ] **A small always-on server (VPS)** (optional) · about $5 a month
  - Why: This needs one process running all the time with a public address.
  - Get it: Hetzner Cloud (from about 4 EUR), DigitalOcean or Fly.io. Ubuntu 24.04, the smallest size. You need SSH access and a public IP. Only needed for the deploy phase; develop locally first.
- [ ] **A domain or subdomain** (optional) · roughly $10 a year, or free on an existing domain
  - Why: The snippet posts to this address from every page it lives on.
  - Get it: Register at Cloudflare Registrar, Porkbun or Namecheap, or use a subdomain of one you already own. You add one DNS record in the deploy phase.
- [ ] **Caddy on the server** (optional) · free
  - Why: Automatic HTTPS in front of the Node process. Without TLS the browser features this relies on (and your visitors' trust) do not work.
  - Get it: On the VPS: follow the install steps at caddyserver.com/docs/install for Ubuntu. One Caddyfile with your domain and a reverse_proxy line is the whole config.
  - Verify: caddy version prints a version on the server

## Quick start

```sh
mkdir waitlist && cd waitlist && git init && npm init -y && npm pkg set type=module
mkdir data && cp .env.example .env
```

Then copy `.env.example` to `.env` and fill in the values it documents.

## Honest limits

This build deliberately does not replace:

- Sending email: no welcome mail, no blasts, no confirmation link. Deliverability is a whole product; export the CSV into a real sender.
- Their referral-widget template gallery.
- Spam filtering beyond a honeypot and rate limits: this stops bots, not a determined human.
- their referral-widget templates
- built-in email blasts to the list
- spam filtering you didn't tune yourself

If one of those is essential to you, that is the reason to keep paying for GetWaitlist, and the README should say so rather than pretend.

$ choose a build depth, inspect the files, then open the complete pack in your agent

what you lose

xtheir referral-widget templates

xbuilt-in email blasts to the list

xspam filtering you didn't tune yourself

prior art · use these instead of building, if you'd rather

Nothing worth pointing at. That's why the prompt exists.

share on X ↗"I just replaced GetWaitlist ($15/mo) with one prompt"
the numbers

GetWaitlist pricing

planmonthlyannual (per mo)what you get
legacy free$0/workspace$0/workspaceUnlimited signups; available only to accounts created before 2025-06-12.
basic$15/workspaceUnlimited signups; 7-day trial.
advanced$50/workspaceUnlimited signups; removes GetWaitlist branding.
pro$250/workspaceUnlimited signups; custom email/domain; advanced analytics; multi-user access; unlimited custom email blasts.

free tierNo free tier for new accounts. Legacy accounts created before 2025-06-12 retain a free plan with unlimited signups.

billingMonthly + annual; the page advertises 33% savings annually but did not expose the exact annual charges in the checked public output.

verified 2026-08-12 · source ↗

questions
Vibecode GetWaitlist / LaunchList

Yes. A competent AI coding agent (Claude Code, Codex, Cursor) can build a usable personal GetWaitlist / LaunchList replacement in one session with the prompt on this page. It runs on your own machine or server with no subscription.

How much does GetWaitlist / LaunchList cost?

GetWaitlist / LaunchList costs about $15/month (paid plan, checked 2026-07-29), which is $180 per year. That's what you save by replacing it with one prompt.

What do I lose by replacing GetWaitlist / LaunchList?

Honestly: their referral-widget templates; built-in email blasts to the list; spam filtering you didn't tune yourself. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to GetWaitlist / LaunchList?

No mature open-source alternative worth pointing at, which is exactly why the one-shot prompt on this page exists.