--- name: forms-that-work category: web description: Add a working contact or sign-up form to a static site. Free form backend, validation, spam basics, submissions landing somewhere known. Use when they say "add a contact form" or "collect sign-ups" on a site with no server. --- # forms-that-work Add a form to a static site — no server, so a free form backend receives the submissions and forwards them, usually to the person's email. Decide together where submissions should land before writing any HTML; everything else follows from that. ## Picking a backend Compare a small set of current providers such as Formspree, Web3Forms, or the site's existing host. Read each provider's official pricing, submission limits, spam controls, retention policy, and data-handling terms during setup; plans and limits change. Choose the smallest service that routes submissions to an account the person controls without requiring a payment card. Record the chosen plan and limit in the README. ## Building it 1. They create the backend account with their own email. The form's destination address is theirs — never route submissions through anything you control. Tell them what information the provider stores and for how long before collecting any personal data. 2. Write a plain HTML form: `action` pointing at the backend endpoint, `method="POST"`, and only the fields they actually need. Name, email, message is usually the whole form. Every field they drop is spam surface and friction removed. 3. Validation in HTML before any JS: `required` on mandatory fields, `type="email"` on email. The browser then does the nagging. A `