# Waitlist

A waitlist that spreads by itself: people join with your form, see their place in line, and get a personal link that moves them up for every friend who joins. Invite people in order when you're ready.

**Beta.** Waitlist is in beta: it works, but things may still break. Tell us if something does: open an issue at https://github.com/sundoggs/support/issues/new. Every paid order has a 7-day refund.

Category: [Forms and leads](/categories/forms-and-leads.md)

## Requirements (tell the site owner before buying)

- Cloudflare plan: Cloudflare free plan
- Works on: Cloudflare Workers, Cloudflare Pages
- Version: 0.6.4 (needs site layer 0.23.0 or later; it comes in the same download)
- Runs on the Cloudflare free plan, in the same D1 database as your other site apps. No third-party script and no outside service: the waitlist is added to your page as it's served, and share buttons are plain links.
- Signups use a form from the shared form engine, so they land in the same inbox and contacts as every form (the Forms app isn't needed). Removing Waitlist leaves the form and every submission in place.
- Optional: email. Confirming signups (double opt-in) and emailing invitations send mail through your site's email setup (Cloudflare Email Service). The Cloudflare free sending only reaches addresses you have verified, so mailing the public needs email set up for sending to anyone; without working email, people are simply added without confirmation and the admin says so.
- A person's place in line is counted when they look at it, which reads the whole list: fine for lists of a few thousand; very large lists will use more of the Cloudflare free daily database reads.
- Sets one small cookie (_wlr, 30 days) that remembers a referral link between pages, only when a visitor arrives through one. Works with Popups and Countdown Timers when installed; install order doesn't matter.
- Cost per visit: a page view with the waitlist is one write the first time a page is seen and none after that; a signup is a few small writes (the entry, the contact and an event). If the Cloudflare free database limit is reached, signups cannot be saved until midnight UTC. Visit sources are counted by core: page views are added up in memory and saved in a few small writes about every 20 seconds, within the daily write budget; at the Cloudflare free limits counting pauses and the site is unaffected.

Settings:
- `SITE_EMAIL` (optional): Workers: send_email binding for confirmation and invitation emails.
- `SITE_EMAIL_BINDING` (optional): Workers: the name of an existing send_email binding to use instead of SITE_EMAIL (e.g. EMAIL).
- `SITE_EMAIL_API_TOKEN` (optional): Pages: API token with Email Sending: Edit.
- `SITE_EMAIL_ACCOUNT_ID` (optional): Pages: the Cloudflare account id for that token.

## Works with

Cloudflare Workers, Cloudflare Pages, Astro, Next.js (with OpenNext), Vite, Hugo, Plain HTML sites, Vanilla JavaScript.

## Works with your other apps

Connects with no setup, in any install order: [Forms](/apps/forms.md), [Social Proof](/apps/proof.md), [Analytics](/apps/analytics.md).

## Price

$7 USD per site · $21 USD for all your sites

- 7-day refund, no questions asked: [Refund policy](/legal/refunds)
- Instant download after payment: the app's code and a license file for your site; your AI agent installs it. Includes 12 months of updates.

## License (tell the owner before they pay)

A site license covers one website (plus its www, staging and test addresses). Using it on other sites isn't allowed. Get the all-sites license from $21 instead. Full terms: /account/license/commercial (version commercial-license-v4-2026-11-04); the owner accepts them with a tick box before paying. Full refund on request within 7 days of paying, no questions asked; refunds are made by hand by the store, not automatically, and a full refund ends the license. Terms of sale and refund policy (version terms-of-sale-v3-2026-11-03): /legal/terms.

## What's new in 0.6.4

- People and Stats open on the waitlist with the latest signup, instead of a newer list that has no one on it yet.

## Included

- Site admin dashboard (installed with your first app, no extra cost)
- Updates for 12 months; the version you have keeps working after that
- An agent skill and install guide
- Commercial License: per site, or all your own sites

## Install

Call the MCP tool `create_checkout` with `items: ["waitlist"]`, `site_domain` (a bare domain like example.com) and `license_kind` ("site" for one website, "unlimited" for all sites). Give the owner `checkout_url`: they sign in, read the license, tick the box and pay on Stripe's page. Then poll `get_checkout` until `paid` and call `get_download`.

The prompt the app page gives the owner to paste into their agent:

```
Install the Waitlist app (id: waitlist) from the Sundogs site apps store on this site.
First read https://sundo.gs/apps/waitlist.md and tell me what it needs and what it costs.
If I don't own it yet, start a checkout with create_checkout and give me the link; I'll tick the license and pay myself.
Then download it with get_download for this site's domain. Follow the install guide (site-apps/INSTALL.md in the download, also at https://sundo.gs/install-guide.md).
Check it with the install guide's step 6 (the public status, then the self-test once you can sign in to the admin) and tell me what's next.
(Not connected to the store yet? See https://sundo.gs/agents.)
```
