Waitlist page
Captures an email (and only the fields you list) with success, error, and duplicate states.
When to use it
Use this before the product exists. The deliverable is a page plus a place the email is stored. Do not use it for a full booking app.
Variables
[PRODUCT_NAME][AUDIENCE][PROMISE][FIELDS][SUCCESS_MESSAGE][STACK]
Copy prompt
Build a waitlist page for [PRODUCT_NAME], in [STACK]. Context - Audience: [AUDIENCE] - Promise, in one sentence: [PROMISE] - Fields besides email: [FIELDS] - Success message: [SUCCESS_MESSAGE] If [FIELDS] is "none", the form is email only. Do not add phone, company, or job title on your own. Behavior - Validate the email on the client and again before writing. - Actually store it in [STACK]'s storage. Show where the row appears. - New email: show [SUCCESS_MESSAGE] without reloading the whole page. - Existing email: do not create a second row. Say the address is already on the list. - Network failure: keep what the person typed and show an error with a retry button. - Do not send a confirmation email unless [STACK] already can. If it cannot, say that was left out. Page - A headline with the promise, one paragraph, the form, and a count of signups only if the number comes from the database. If you cannot count, show no number. - Accessible: visible label, error tied to the field, AA contrast. - No fake countdown and no invented "spots left". Deliver: the command to run, where the data lives, and a 4-step manual test (empty, invalid email, new email, repeated email).
How to run this prompt
- Write the promise. One sentence. No feature list for a product that does not exist yet.
- Pick the storage. A sheet, the builder's table, or your own endpoint. Put that in STACK.
- Test the duplicate. Submit the same email twice and read both messages.
Where this breaks
Models like to pretend the save worked. The prompt requires real storage and a different message for a repeated email.
Result
Slot for a screenshot or demo. No result is published yet.