Quick Answer
An HTML form builder generates the markup, styling, and validation code for a web form so you do not hand-write it. This free builder assembles fields in your browser, shows a live preview that validates exactly like the final file, and exports one self-contained .html file with inline CSS and JavaScript — no CDN, no fonts, no account. Point it at your own endpoint with an action URL or let it show a success message; the file is yours to host anywhere.
How It Works
Add fields from the palette — text, email, dropdowns, groups, consent, and layout blocks — then reorder, duplicate, or delete them in the structure list
Configure validation per field: label, required, placeholder, help text, options, number min and max, and pattern checks (phone, URL, postal code, or your own regex)
Style the form: name it, set the submit text and success message, pick one of eight accents, light or dark theme, rounded corners, and an optional reset button
Test the live preview — it runs the same validation script as the export, shows the same messages, and focuses the first invalid field on submit
Export with Copy HTML or Download form.html — one self-contained file with inline CSS and JavaScript and zero external requests
Key Facts
- Fourteen field types: text, email, number, phone, long text, dropdown, radio and checkbox groups, single checkbox, date, consent, heading, paragraph, and divider
- Validation runs identically in the preview and the export — required, email format, number min and max, patterns, consent, and group minimums, with the same messages
- Preset pattern checks for phone, URL, and US postal code, plus custom regular expressions
- One self-contained .html export: inline CSS, inline JavaScript, system font stack, zero external requests
- Optional action URL POSTs form data to your own endpoint with fetch, with success and error handling built in
- Eight accent colors and a light or dark theme baked into the export with explicit colors
- Accessible output: labels bound to inputs, fieldset and legend for groups, errors wired via aria-describedby, first invalid field focused on submit
- Work is saved automatically in this browser (localStorage); copy the HTML or download form.html at any time
Frequently Asked Questions
How does validation work in the exported form?
The exported file uses a semantic form with the novalidate attribute, so the browser never blocks submit with its own bubbles. An inline script at the end of the file re-runs the same checks the live preview runs — required fields, email format, number minimum and maximum, pattern mismatches, required consent boxes, and a minimum of one selection for required groups — and shows the exact same messages. Errors are attached with aria-describedby and aria-invalid, and the first invalid field receives focus on submit. The script is embedded from the very function the preview uses, so the two cannot drift apart.
Is this form builder free?
Yes — free and unlimited, with no account, no watermarks, and no caps. Hosted form services charge for scale: Tally’s free tier is generous but team features sit behind Tally Pro at 34/month. This builder exports a plain HTML file you host yourself, so there is no per-response cost at all.
Where do submitted responses go?
Two modes. Without an action URL the form simply validates and shows your success message — nothing is sent anywhere. With an action URL, the exported file POSTs the FormData to that endpoint using fetch when the visitor submits, and shows a success or error message based on the response. The endpoint is yours: your own server, a serverless function, or any handler that accepts form-data. Note the endpoint must allow cross-origin requests (CORS) for the browser to read the response.
Is my data private?
Yes. The builder runs entirely in your browser — field definitions are saved to localStorage and never uploaded, and the HTML export is generated locally. The exported file itself makes zero external requests: styling and the validation script are inline and the typeface is the device’s system font stack, so a finished form works offline and loads nothing from any CDN.
Can I host the exported form anywhere?
Yes. The export is a single .html file with no dependencies, so it works on any static host (GitHub Pages, Netlify, S3, a Raspberry Pi), in an iframe, attached to an email, or opened straight from disk. It is responsive with a 560px maximum content width, uses explicit colors in both light and dark themes so host pages cannot wash it out, and sizes inputs at 44px for touch screens.
Why use this instead of embedding a form service?
A hosted embed loads third-party scripts, caps responses, and keeps your form behind their dashboard. This export contains no vendor script tags, has no submission limits, and is plain HTML you can edit in any text editor. The trade-off is honest: without an action URL the form records nothing by itself — wire it to your own endpoint if you need to collect responses.