Add fields, reorder them, export clean HTML or JSON — no signup, no framework, no server
| Type | Use It For | Free Validation You Get |
|---|---|---|
text | Single-line free text | None beyond length limits |
email | Email addresses | Format check, mobile @ keyboard |
number | Quantities, prices, ages | Numeric only, min/max/step |
tel | Phone numbers | Numeric keypad on mobile |
date | Birthdays, appointments | Native picker, no typos like 31/31 |
url | Website links | Must be a valid URL |
password | Secrets | Masking; pair with HTTPS always |
checkbox | Yes/no consent, opt-ins | Checked/unchecked state |
radio | Pick one of a few options | Single selection per group name |
Rule of thumb: the more you lean on the right input type, the less JavaScript you write. Browsers have validated email formats and date ranges since 2013.
Every click on the palette adds one field definition: a type, a label, a name attribute, placeholder text, and whether it's required. Dropdowns and radio groups take one option per line. The preview renders exactly what your users will see, and the export produces semantic HTML: a label tied to its input, a name on every field, and required flags where you set them.
Build top to bottom in the order you want visitors to answer. Use radio buttons under five options and a dropdown above five, since a dropdown hides choices behind a click. Keep required fields to the minimum you can honestly justify, because every extra required field costs completions. When the form looks right, copy the HTML and paste it into any page, or grab the JSON schema if you're feeding a backend or a no-code tool.
A contact form usually needs five fields: name (text, required), email (email, required), topic (dropdown with 3–4 options), message (long text, required), and a consent checkbox where privacy rules require one. That form exports as about 20 lines of HTML, weighs under a kilobyte, renders instantly, and validates in the browser with zero JavaScript.
Yes. The export is a single self-contained form element with semantic labels, name attributes, required flags, and a submit button. There is no framework, no CSS dependency, and no JavaScript required to render it. Point the action attribute at your backend or a form service and it works.
No. The generated form has action="#" as a placeholder. You decide where it goes: your own backend endpoint, a service like Formspree or Netlify Forms, or an event handler you write. Nothing sends data anywhere until you wire that up, which is the point: your users' data stays yours.
The name attribute is what the browser puts in the submitted data, so every field needs one and duplicates among radio buttons are how grouping works. The id is for linking labels to fields for accessibility and is auto-generated here to stay unique. Forgetting name is the single most common broken-form bug.
Add the required attribute to the input. The browser then blocks submission and shows its own validation message, no JavaScript needed. Pair it with the right input type, email for addresses, number for quantities, and you get format checking for free from the same attribute.
Easily, because the markup is plain. The export includes no classes you don't add yourself, so your site's existing styles apply immediately, and a few lines of CSS on label, input, and button cover the rest. Frameworks fight your stylesheets; plain HTML doesn't.