HTML signup page

A signup page is a short form with correct input types and one clear action. The markup takes ten minutes; the decision that matters is where the submission is received.

An HTML signup page is a short form with correct input types, visible labels, one action, and an action attribute pointing at something that can actually receive the submission.

The last part is the one to settle first. HTML has no storage of its own, so a beautiful form with nowhere to post is a page that silently loses everybody who fills it in.

A signup page with a heading, one line of text, an email field and a single button.
A signup page with a heading, one line of text, an email field and a single button.

Decide where the HTML signup page posts before you write it

The receiver determines the markup, so choose it first.

Receiver What you set Suits
Form service endpoint action to their URL, fields named as they expect Most cases, no server needed
Mailing tool signup endpoint Their form markup, copied Newsletters
Spreadsheet connected script action to the script URL Internal lists
Your own server action to your route Anything with logic behind it
Nothing The page collects nothing Only a mockup

A page with no receiver is fine as a design review artefact. Say so explicitly, or somebody will point real traffic at it.

The markup

Short forms complete better than long ones, so ask for what you will use and nothing else.

<form action="https://forms.example.com/e/abc123" method="post">
  <label for="email">Work email</label>
  <input id="email" name="email" type="email"
         autocomplete="email" required
         placeholder="you@company.com">

  <label for="name">Name</label>
  <input id="name" name="name" type="text"
         autocomplete="name">

  <p class="consent">
    We will send the weekly update and nothing else.
    Unsubscribe from any message.
  </p>

  <button type="submit">Sign up</button>
</form>

Every input has a label joined by for and id. A placeholder is not a label. It disappears when typing starts and it is not announced reliably.

Input types change the keyboard

This is the highest return detail on a mobile signup page, and it costs one attribute.

  • type="email" brings up a keyboard with the at sign visible.
  • type="tel" brings up the number pad.
  • type="url" brings up a keyboard with a slash key.
  • autocomplete="email" and autocomplete="name" let the browser fill the field from its stored profile.

Most people signing up are on a phone. Saving them four taps matters more than the colour of the button.

The signup form at phone width with the email field focused.
The signup form at phone width with the email field focused.

Validation, and what it is worth

Browser validation is immediate, free and easy to bypass.

required blocks an empty submit. type="email" rejects an entry with no at sign. Neither guarantees the address exists, and both can be removed by anyone with developer tools open.

So keep them for the honest majority, and validate again wherever the data is received. Never treat client side checks as a security measure.

For the error state, show the message next to the field, in words, and keep the invalid value in place. Clearing what someone typed is the fastest way to lose them.

Whatever your jurisdiction requires, one plain sentence next to the button serves the reader better than a paragraph in a footer.

Say what you will send, how often, and how to stop. If the address goes to a third party tool, say that too. A page that is vague about this collects fewer addresses and worse ones.

Structure around the form

A signup page is mostly not the form.

  1. A heading that names the thing. Not a slogan.
  2. One or two lines saying what arrives and when.
  3. The form.
  4. The consent line, next to the button.
  5. A confirmation state, which people forget to design.

That fifth point is where signup pages most often feel broken. Decide what the user sees after submitting: a thank you page, an inline message, or a redirect.

If the receiver supports a redirect target, point it at a page you wrote rather than their default confirmation screen. A branded page beats a stranger's success message.

Publishing the page

The page has to be reachable at an address. Sending the .html file to someone is not publishing, and it hits every attachment problem on the way.

Paste the HTML into a NOS document. It renders as written, form included, and the share link is the address people open. Use Share, then Share link, then Create link, and tick Public on the web if it should be findable in search.

Creating the share link with Public on the web ticked for a page meant to be found.
Creating the share link with Public on the web ticked for a page meant to be found.

Editing does not change the address, which matters more here than elsewhere. A signup link goes into messages, chat channels and other pages, and correcting the copy should not mean chasing all of them.

Fields to leave out

Every extra field costs completions, so each one has to earn its place.

Company size, job title and phone number are usually asked because a form in another department wanted them once. If nobody reads the answer within a week, remove the field.

Ask for the rest later, once the person has a reason to give it. A second short form after signup completes better than one long form before it.

Test it by submitting it

Before it goes anywhere, do the full round trip yourself.

  • Submit a real entry and confirm it arrives at the receiver.
  • Check the confirmation state is the one you intended.
  • Open the page on a phone and complete it there.
  • Confirm the page works over https, since browsers warn on password and payment fields served insecurely.
  • Open the file in the HTML file opener to confirm nothing depends on your folder.

A signup page that was never submitted once by its author is a signup page with an unknown failure rate.

If the signup follows a plan choice, pricing page HTML covers the table and the button that lead into this form. For the sharing side of forms in general, see form to link, and for the element choices, semantic HTML.

Questions people ask

Where does an HTML signup form send data?

Wherever the action attribute points. HTML itself cannot store anything, so the form needs a receiver: a form service, a spreadsheet connected endpoint, a mailing tool, or your own server. Without an action the page collects nothing.

What input types should a signup page use?

Use type email for the address, type tel for a phone number and autocomplete attributes on both. On a phone this changes the keyboard that appears, which is a larger completion improvement than most design changes.

Is browser validation enough?

No. Required and type email catch typing mistakes and give instant feedback, which is worth having. They are trivially bypassed, so whatever receives the submission has to validate again before storing anything.

How do I put a signup page online quickly?

Paste the HTML into a NOS document and create a share link. The page renders as written and the form posts to whatever action you set. Tick Public on the web if the page should be findable in search.

Keep reading