/technology/modules/ · waitlist Shipping
waitlist
Per-product waitlists with confirmation, queue position, referral codes and admin export.
What it is
waitlist.
A visitor joins a named waitlist and confirms by email; on confirmation the module assigns a dense queue position inside a single atomic batch, so two people confirming at once never share a place. Referral codes credit a confirmed referrer on the same product. It answers identical bytes for every row state, so the endpoint reveals nothing about who is on the list.
Positions are dense at assign time per product and never recomputed on delete, and the referrer credit and the position update run in one Database::batch — atomic on D1, a transaction on SQLite and Postgres.
Ports
Database · Mailer · Signer · Captcha and RateLimiter optional
Routes
POST /v1/waitlist— join, answers 202 whatever the stateGET /v1/waitlist/confirm— confirm and take a positionGET /v1/waitlist/status— a signed status token: position, referrals, share linkGET /v1/waitlist/admin/export.csv— admin token, the full list
UI surface
A join form, a status page, and an admin export table, rendered at /ui from the handler's own types.
Emits
waitlist.joined, waitlist.confirmed
This is the module Cratefield runs for its own early-access list. The form on this site posts to it.