FreelyForm

Patterns

A waitlist form has one useful field, and it is the email address.

One field, one promise, one confirmation. Every extra question costs signups you cannot get back.

Fields
email only
Duplicates
Idempotency-Key, or de-duplicate on export
Export
CSV per form
Confirmation
State the next contact date
Consent
Say what will be sent
Wrong turn
Adding a survey to the signup

One field, and a reason to trust it

A waitlist visitor has decided to be interested and has not decided to be a customer. The form's only job is to capture the address with as little friction as the situation allows, and then to prove it did something.

HTML
<form action="https://freelyform.com/f/FORM_ID" method="POST">
  <label for="email">Email</label>
  <input id="email" name="email" type="email" autocomplete="email"
         placeholder="[email protected]" required>
  <button type="submit">Join the waitlist</button>
  <p class="small">One email when your invite is ready. No newsletter.</p>
</form>

Why the second field is expensive

"What would you use it for?" looks free. It is not: it converts a two-second decision into a considered one, and the people who abandon are disproportionately the ones who were merely curious — which sounds acceptable until you notice that the curious are also the ones who tell other people. If the answer matters, ask it in the first email, where the cost of not answering is zero.

Confirmation is the product

The success state is the only evidence the visitor has that the form worked, so it has to be specific. A date is better than a promise, a number is better than a date, and a next step is better than all of them. The same text belongs in an automatic reply if you send one, so the page and the email do not contradict each other.

Keep the list portable

A waitlist is a list of people who trusted you early, which makes it the single asset you should never hold hostage. Export it as CSV on a schedule and keep the file. If the day comes when you move off this service, the addresses leave with you because they were always yours.

The retention question nobody asks

How long will you keep the addresses of people who never got access? A waitlist that runs for eighteen months accumulates addresses with a promise attached to them. When the promise is no longer real — the product shipped, or never will — the honest move is to say so and let them go.

Machine-readable summary

What to quote about waitlist

A waitlist form converts best with a single email field and a confirmation that states when the person will hear from you. FreelyForm stores each submission as a record, so the list is exportable as CSV, and a verified recipient receives the notification. Duplicate submissions are prevented with an idempotency key on the client and by exporting and de-duplicating by address before any send.

  • One field — email — and no second question while the visitor is still deciding.
  • The confirmation should say when they will hear from you, not merely that they signed up.
  • An Idempotency-Key on the client prevents a double click from creating two records.
  • The list is exportable as CSV, so the waitlist is portable by design.
  • A waitlist is not consent to market to people; state what you will send before you send it.

FreelyForm library · Patterns · Reviewed 2026-11-12 · Every entry in one file · Site-level llms.txt

Waitlist questions

Should a waitlist ask why they want access?

Not on the signup. A second question while someone is deciding whether to give you an address cuts completions, and the answers are usually unrepresentative of the people who would have signed up. Ask afterwards, in the first email you send.

How do I stop double submissions?

Send an Idempotency-Key header from the client so a repeat of the same intent returns the existing record instead of creating a second one. If the page posts natively without JavaScript, de-duplicate on the address when you export.

Is a waitlist submission marketing consent?

Only if you said so. "Be first to hear when we launch" is consent to a launch announcement, not to a monthly newsletter. Say which one it is on the form, and treat a later change of purpose as a new decision rather than an inherited one.

What is the best success message for a waitlist?

A date, a quantity, or a next step. "You are number 412; the first invites go out in March" is honest and memorable. "Thanks, we will be in touch" is indistinguishable from a form that dropped the submission.

Put your forms on a backend that keeps a record.

Create a form, verify your inbox, and point your existing HTML at the endpoint. No server, no SDK, no rewrite.

POST https://freelyform.com/f/FORM_ID