Static HTML forms need one real endpoint.

A static website can show a form, validate basic fields, and send a browser request. It cannot store the submission unless the form points to a real endpoint. That endpoint can be a form service, newsletter platform, serverless function, or your own backend.

This matters for waitlists and newsletters because the page often looks finished before the data path is working. The visible form is only half the system.

The minimum working form

The important attributes are action, method, and field name values. The endpoint receives named fields, not labels or placeholder text.

<form action="https://example.com/your-endpoint" method="post">
  <label for="email">Email address</label>
  <input id="email" name="email" type="email" required>

  <label for="role">What are you building?</label>
  <input id="role" name="role" type="text">

  <button type="submit">Join the waitlist</button>
</form>

Choose an endpoint by workflow

For an early launch, a form service or newsletter endpoint is usually enough. Avoid adding a full app stack only to collect one email field.

Test before sharing

After replacing the endpoint URL, submit a real test address. Confirm the submission appears where you expect it. Then test again from the deployed page, not only from a local file. Some providers check domains, spam protection, or allowed origins.

Use a success page or confirmation message that tells the visitor what happens next. Do not leave them on a blank browser response after submitting.

Common mistakes

Free templates with form placeholders

The free templates below include static forms with clear endpoint placeholders. Replace the action URL, run one real submission, then deploy.

Download free waitlist pageDownload free newsletter page

Need the complete page set?

The paid kits add coordinated launch, changelog, story, and archive pages while keeping the same plain HTML workflow.