For product launches

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.

unwaited.com/w/sundial-launch

Sundial

The calm inbox for small teams. Early access opens in waves.

1284 already joined

Sundial · made in Austin · no spam, one email when it's your turn

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
Create this waitlistSign in, one click, and it's live with these settings. Change anything after.

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.