HTML form generator

    Pick your fields, preview the form and copy clean code — plain HTML, HTML with a no-reload submit, or a React component, styled with plain CSS or Tailwind. It posts to a Formboost form endpoint, so there is no server to write.

    • ✓ No signup to generate
    • ✓ Accessible, labelled markup
    • ✓ Runs in your browser — nothing is saved on our servers

    Reviewed by Ritu Fadadu · Last reviewed

    Build your form

    Paste https://formboost.app/f/… or just the ID. Get a free endpoint — no card needed.

    Fields (3/30)

    Form settingsShow

    Sent as _subject.

    https:// and on the same site as the form, or visitors see Formboost's page. A test from localhost always lands on Formboost's page.

    A hidden field bots fill in. Recommended.

    Names the visitor's email _replyto. Replies then go to the visitor, but the address leaves the email's field table and Auto Reply needs its recipient field set to _replyto. The JS and React versions do this for you.

    Preview and code

    • No endpoint yet — the code uses YOUR_ENDPOINT_ID. Replace it before going live.

    Downloads a standalone .html page.

    How the generated form works

    The form's action is your endpoint and its method is POST. Each field's name becomes a column in your dashboard and a line in the notification email, so name fields for the person reading them: company reads better than field3.

    Four reserved fields steer delivery. They start with an underscore and never appear in the email's field table:

    FieldWhat it does
    _honeyThe honeypot. Hidden from people; a bot that fills it in is flagged as spam and never forwarded.
    _subjectThe subject line of your notification email (up to 200 characters).
    _redirectPlain HTML only: where to send the visitor afterwards. Must be https:// and on the same site as the form.
    _replytoSets the reply-to of your notification email, so replying answers the visitor.

    Plain HTML or JavaScript?

    Plain HTML needs no script at all. The browser posts the form, Formboost answers with a redirect, and the visitor lands on your thank-you page (set by _redirect) or on Formboost's. It works everywhere, including site builders that strip scripts.

    HTML + JS and React stay on the page. They send the fields as JSON with fetch(), get a 202 Accepted back, and show your success message in place. They also handle the cases plain HTML cannot: a multiple-choice question that must have at least one box ticked, and a friendly message when someone submits too many times in a minute.

    Test it before you publish

    1. Create a form in the dashboard and paste its endpoint above.
    2. Publish the page, submit the form once, and check the submission in your dashboard.
    3. Testing from localhost? The redirect falls back to Formboost's page, because it must match the site the form is on. That is expected.
    4. Nothing arrived? Troubleshooting walks through every cause.

    What it does not do

    • It does not host the form or embed an iframe — the code runs on your site.
    • No file uploads: ask for a link to the file instead.
    • No CAPTCHA: a honeypot and Formboost's spam screening do that job.
    • No payments, conditional logic or multi-step pages.

    Questions about the generator

    Is the HTML form generator free?

    Yes. Generating and copying code needs no account. To receive submissions you need a Formboost endpoint, and the Free plan includes 10 forms and 500 submissions a month with no card.

    Does Formboost host the form?

    No. The generator writes code that you paste into your own site, so the form is yours: your markup, your styles, your page. Formboost only receives the submissions at your endpoint.

    Can the form accept file uploads?

    No. The endpoint accepts text, choices, dates and links. Ask for a link to a file (Google Drive, Dropbox) instead — the job application template shows how.

    Does it add a CAPTCHA?

    No. The generated form carries a hidden honeypot field, and every submission is screened for spam by Formboost before it is forwarded, so visitors never solve a puzzle.

    Why does the JavaScript version send JSON instead of FormData?

    The endpoint accepts JSON or URL-encoded bodies. Passing new FormData(form) straight to fetch() sends a multipart body, which the endpoint rejects with a 415, so the generated script converts the fields to JSON first.

    How do I know my endpoint is right?

    Submit the form once from the live page and look for the submission in your dashboard. The endpoint acknowledges every request immediately, before the form is looked up, so a successful response alone does not prove the ID is correct.

    Keep going

    Get your free endpoint

    Free forever: 500 submissions a month across 10 forms, email, Slack, Discord and Telegram included. No card.