Product waitlists
Collect waitlist emails for a launch with spam protection, optional double opt-in, and a simple export when you are ready.
The problem
Pre-launch interest piles up on a landing page and you do not want a custom database for one form.
How Simple Signups fits
One campaign per waitlist. Domain gating, rate limits, and optional metadata keep the list clean and let you track where signups came from before invites go out.
When this is a good fit
- Promise-led landing pages that only need email capture.
- Static launch sites that want optional source or referral metadata.
- Teams that want to export the list or hand it off later without rebuilding the form.
When you probably need more than this
Not a fit alone if your waitlist is really an application flow with scoring, approvals, or multi-step onboarding before someone joins the queue.
Working example
Swap in your public campaign id (pub_...) and add your site domain to the campaign allow-list. Full field reference is in the developer docs.
<p>Be first in line. Join the waitlist and we will email you when early access opens.</p><form action="https://simple-signups.com/api/subscribe" method="POST"> <input type="hidden" name="campaignId" value="pub_your_campaign_id" /> <input type="email" name="email" required placeholder="you@example.com" /> <input type="hidden" name="tags" value="waitlist,early-access" /> <input type="text" name="hp" tabindex="-1" autocomplete="off" style="position:absolute;left:-9999px" aria-hidden="true" /> <button type="submit">Join waitlist</button></form>await fetch('https://simple-signups.com/api/subscribe', { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ "campaignId": "pub_your_campaign_id", "email": "jane@example.com", "tags": [ "waitlist", "early-access" ], "metadata": { "source": "landing", "list": "early-access" } }),});Related reading
- How to quickly validate an idea with a waitlist — How to use a waitlist as a demand signal before you build.
- How to add a waitlist to a static website without a custom API — The implementation pattern for static hosts, thank-you states, and source tracking.
- Signup backend for static sites: why Simple Signups exists — Where a waitlist fits inside the broader static-site signup backend category.
Next step
Create a campaign in the dashboard, copy the public id, and paste the form above onto your site.