Every signup gets a number. You get a list you can export.
Put a waitlist on your landing page in one script tag. Each signup sees a position, you get an email and a webhook, and the list is yours the day you go live.
Sundial
The calm inbox for small teams. Early access opens in waves.
The problem
Your launch page is a form that goes nowhere
A Typeform that emails you rows. A Google Sheet nobody trusts. A Mailchimp form that tags people but tells them nothing. Meanwhile the people signing up see no number and no sign that a line exists. When launch day comes you spend an afternoon deduplicating addresses before you can send the first invite.
The recipe
Exactly what the button sets up
Capacity, reset time, opening hours, and the form fields. It is a starting point, not a cage. Every value is editable in Settings and the builder.
Recipe
Early access
- No cap. The list stays open until you pause it or launch.
- Asks for company and team size so you can invite the right accounts first.
- Each signup sees their position on the success screen.
- The running count is shown on the form.
- One entry per email address. A second submit returns the existing position.
- Capacity
- Unlimited
- Signups open
- Any time
- Form asks for
- Email, Company, Team size
- Counter on the form
- Shown
How it works here
How the list works
Embed in a minute
A script tag on Webflow, Framer, Next.js, or plain HTML. Or an iframe. Or a POST from your own form.
Ask what you need
Email is built in. Add company, role, a dropdown, a checkbox for terms. Show/hide rules reveal fields only when they matter.
Show the number
"You're #482." A visible position turns a form into a line people tell friends about.
Dedupe by email
One entry per address. A second submit returns the existing position instead of a new row.
Get told immediately
An owner email per signup, and on Pro a signed webhook to Slack, your CRM, or a script.
Take the list with you
CSV export with every custom field, or pull entries over the API when you launch.
Why it holds up
What matters most
It looks like your product
Colors, corner radius, font, and button style are tokens. The badge disappears on Pro.
It survives a Hacker News spike
Positions are assigned inside a database lock. Two people cannot get the same number.
Bots stay out
We keep bots out behind the scenes. Automated submits never make it onto your list.
Developers get a real API
A JSON endpoint, API keys that skip the captcha, and webhooks with HMAC signatures and retries.
FAQ
Questions people here ask
Can I use my own form instead of the widget?
Yes. POST the fields to the entries endpoint from any stack. Send a captcha token from the browser, or use an API key from your server.
Does it email the people who sign up?
Yes. Joiners get a confirmation with their number and a link to check their place or leave the list. You get an owner email per signup. Invites still go out from your own email tool using the CSV export.
What happens at 100 signups in a month on the free plan?
The form reads as full until the 1st. Upgrade to Pro and it reopens right away with every entry intact.
Can I show the count on my page?
Yes. The embed can display the running count, and the API returns it with every response.
Other lines