HTML form templates

    Each template is a complete, working form in four versions — plain HTML, HTML with a no-reload fetch() submit, a React component and Tailwind — with labelled fields, a hidden honeypot and a note on why every field is there.

    They post to a Formboost form endpoint, so there is no server to run: submissions are stored, screened for spam and sent to your inbox or team chat. Need a different set of fields? Start from any template in the HTML form generator.

    Reviewed by Ritu Fadadu · Last reviewed

    Contact & enquiries

    Sales & bookings

    Events & registration

    Applications

    Feedback & reviews

    Signups

    Prefer a step-by-step guide?

    These tutorials build a contact form from scratch and explain each step along the way:

    What every template has in common

    Every field has a real <label>, groups of choices are a <fieldset> with a legend, and optional fields say so in words. Phones get the right keyboard from the input type and fill in names and addresses from autocomplete.

    There is no CAPTCHA. A hidden honeypot field catches the simplest bots, and every submission is screened for spam before it reaches you — how the screening works. The forms take text, choices, dates and links. They do not take file uploads — the job application asks for a link to the résumé instead — or payments: the order form is a request you confirm and invoice, and the booking forms are requests you confirm.

    The script versions send JSON, because the endpoint accepts JSON or URL-encoded bodies but not the multipart body that new FormData(form) produces when it is passed to fetch() directly. The full contract is in the API reference.

    Build your own form

    Pick fields, preview it and copy HTML, React or Tailwind — then point it at a free endpoint.