splitforms.com

Free tool · no signup

Free HTML Form Generator

Last updated · plan facts checked against /pricing

Build a form visually, copy clean HTML (or React) and paste it into any site; the generated form submits to a free splitforms endpoint, so it works without a backend.

Build your form, then copy the code

Start from

1. Backend

where submissions go

Don't have one? Get a free splitforms key: 500 submissions total, no credit card.

2. Fields

Click a type to add a field, then use ↑ ↓ to reorder.

Text · name
Email · email
Textarea · message

3. Button, style + spam

Style preset (HTML + React)

A hidden botcheck checkbox people never see. If a bot ticks it, splitforms silently drops the submission; rule-based spam filtering runs on every submission either way.

Live preview

preview only · submit is disabled

contact-form.html

<style>
    form { max-width: 480px; font-family: system-ui, sans-serif; }
    label { display: block; font-size: 13px; font-weight: 600; margin: 14px 0 6px; }
    input:not([type=checkbox]):not([type=radio]), textarea, select { width: 100%; padding: 10px 12px; border: 1px solid #d6d6d1; border-radius: 6px; font: inherit; box-sizing: border-box; }
    textarea { min-height: 100px; resize: vertical; }
    fieldset { border: 0; margin: 14px 0 0; padding: 0; min-width: 0; }
    legend { font-size: 13px; font-weight: 600; margin: 0 0 4px; padding: 0; }
    label.sf-choice { display: flex; align-items: center; gap: 8px; margin: 8px 0 0; font-size: 14px; font-weight: 400; }
    label.sf-choice input { margin: 0; accent-color: #ff4f00; }
    button { margin-top: 18px; padding: 12px 20px; background: #ff4f00; color: #fff; border: none; border-radius: 6px; font-size: 14px; font-weight: 600; cursor: pointer; }
    button:hover { background: #c93d00; }
  </style>

<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
  <input type="hidden" name="subject" value="New contact form submission">

  <!-- Honeypot — bots fill every field, humans don't see this -->
  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">

  <label for="field-name">Your name <span style="color:#ff4f00">*</span></label>
  <input id="field-name" name="name" type="text" placeholder="Jane Builder" required>

  <label for="field-email">Email <span style="color:#ff4f00">*</span></label>
  <input id="field-email" name="email" type="email" placeholder="[email protected]" required>

  <label for="field-message">Message <span style="color:#ff4f00">*</span></label>
  <textarea id="field-message" name="message" placeholder="What's on your mind?" required></textarea>

  <button type="submit">Send message</button>
</form>
<p class="splitforms-attribution" style="margin-top:12px;font-size:11px;color:#888;text-align:right">
  Powered by <a href="https://splitforms.com" style="color:#888;text-decoration:none" target="_blank" rel="sponsored noopener">splitforms</a>
</p>

Paste into any HTML page, a WordPress Custom HTML block, a Webflow or Carrd embed, or a static site. Replace YOUR_ACCESS_KEY with your key (get one free) and submissions start arriving in your inbox and dashboard.

HTML, React or Tailwind

One builder, three outputs: semantic HTML, a hook-free React component, or HTML with Tailwind classes. No iframe, no embed script.

Zero JavaScript

The HTML output uses native HTML5 validation, so the form works with JavaScript disabled and adds 0 KB of script to your page.

Honeypot on by default

Every form ships with a hidden botcheck field. When it posts to splitforms, bots that tick it are dropped before they reach you.

Key facts

What is an HTML form generator?

An HTML form generator turns a list of fields into ready-to-paste form markup. This one runs entirely in your browser and outputs HTML, a React component or Tailwind-styled HTML whose action points at splitforms, so submissions are stored and emailed to you without a server. Start from a ready-made HTML form template instead, or describe the form in plain English with the AI form generator.

HTML form generator at a glance
PriceFree. No signup to build and copy a form.
OutputsHTML (with an optional CSS preset), a React JSX component, or HTML with Tailwind classes
Field types12: text, email, phone, URL, number, date, textarea, dropdown, checkbox, radio, hidden, file
Spam protectionHidden honeypot field, on by default, plus smart spam filtering (server-side rules) on splitforms
Default action URLhttps://splitforms.com/api/submit, or any URL that accepts a POST
Free plan500 submissions total (one-time), no credit card
Paid plansPro $5/month (5,000 submissions a month) or Annual $49/year (15,000 a month)
File uploadsPaid plans only: up to 5 files of 5 MB each per submission
JavaScript addedNone for the HTML and Tailwind outputs (native HTML5 validation)

Plan facts from /pricing. New to form markup? Read the HTML <form> element reference or the complete HTML form guide.

How to

How do you build an HTML form with this generator?

Pick a starting form, adjust the fields, choose a style and an output, then paste the code into your site and swap in your access key. It takes about two minutes, and the result is standard HTML that renders the same in React, Vue, Astro, WordPress, Webflow or a plain .html file.

Pick a starting form

Start from the contact, newsletter, booking or feedback preset, then add or remove fields: text, email, phone, URL, number, date, textarea, dropdown, checkbox, radio, hidden or file.

Set names, labels and required

Each field's name is the key its value arrives under. Tick Required for fields that must be filled; the browser enforces it with native HTML5 validation, no JavaScript.

Choose a style and an output

Pick a CSS preset (or none), keep the honeypot spam trap on, then switch between HTML, a React JSX component, or HTML with Tailwind classes.

Paste it and add your key

Copy the code into your site and replace YOUR_ACCESS_KEY with a free splitforms key. Each submission is then stored in your dashboard and emailed to you.

You own the code

Do you own the HTML this form generator outputs? Yes.

Most "form builders" hand you an iframe or a hosted page you don't control. This generator hands you the actual code: you own it, style it, and drop it into Next.js, React, Astro, WordPress, Webflow, or a plain .html file. By default it posts to splitforms.com/api/submit (500 free submissions total, no card), but the action can point anywhere.

  • Plain HTML or JSX you own and restyle, not a hosted page or a locked iframe.
  • No added JavaScript in the HTML output: a native form with native validation.
  • Any POST backend: splitforms, Formspree, or your own route.
  • Free, no signup: build and copy as many forms as you want.
You own the semantic HTML this free form generator outputs

Where submissions go

Where do your HTML form submissions go?

The generated form posts to whatever URL you set in its action attribute. By default that's splitforms, which validates the request, runs its rule-based spam filter, and forwards it to your email and a searchable dashboard. Or point the action at Formspree or your own route.

  • 500 submissions total, free to start, no credit card.
  • Hidden honeypot on every form, screened automatically on splitforms.
  • Search, export to CSV, or forward to a signed webhook or Slack on paid plans.
A generated HTML form routing its submissions to splitforms or any POST backend

How SplitForms works

What happens after someone submits your form?

splitforms receives the submission, filters spam, saves it to your dashboard and emails you — then, on paid plans, sends it on to your webhooks and integrations. No backend infrastructure to build.

A SplitForms contact form submission launching straight to your inbox

Add your endpoint

Point your form to your unique SplitForms endpoint. That's it.

HTML form pointing at a SplitForms submit endpoint

Receive submissions

We instantly capture and organize every submission in your inbox.

Submissions inbox with searchable leads and status pills

Route anywhere

Send data to email, spreadsheets, CRMs, webhooks, and 7,000+ apps.

Generic integration tiles for email, sheets, chat, CRM, automate, and webhook

No credit card required. Set up in under 60 seconds.

Connect & automate

Where can submissions go besides email?

On paid plans, submissions can also go to Slack, Discord, Google Sheets, Notion, Airtable, Zapier or any signed webhook — and splitforms works on the platforms you build on, from WordPress and Shopify to Next.js. With Stripe connected, your forms can take payments too.

Connect your SplitForms form to Slack, Google Sheets, Mailchimp, Zapier and more
NewTake payments on your formsDeposits, bookings, order forms — submitters check out through Stripe and the money goes straight to your Stripe account. Included on every paid plan.See plans →

Setup guides for the stacks you use

Questions

HTML form generator questions.

View all FAQs
Is this HTML form generator free?

Yes. Building and copying a form is free, with no signup and no usage limit, and the code is yours to use in any project. If the form posts to splitforms, the free plan covers 500 submissions total (one-time) with no credit card; Pro is $5/month for 5,000 submissions a month.

Does the generated form send email?

Yes, when it posts to splitforms. Each accepted submission is saved to your splitforms dashboard and emailed to you, on every plan including Free, with reply-to set to the visitor's email so you can answer from your inbox. Plain HTML can't send email by itself: a form needs a backend to receive the POST, and the generated action URL is that backend.

Can I use it with React or WordPress?

Yes. The React JSX tab gives you a ready component for React, Next.js, Remix or Vite; it needs no state or hooks because the browser posts the form natively. For WordPress, paste the HTML tab into a Custom HTML block. The same HTML works in Webflow, Carrd and static sites.

Does it include spam protection?

Yes. A hidden honeypot field (botcheck) is on by default: people never see it, and when a bot ticks it splitforms silently drops the submission. splitforms also runs smart spam filtering, a set of server-side rules, on every submission with no CAPTCHA. If you point the form at another backend, you have to check the honeypot value yourself.

What field types does the form generator support?

12: text, email, phone, URL, number, date, textarea, dropdown, checkbox, radio, hidden, file. All are standard HTML inputs with no custom widgets. Radio buttons and checkbox groups are wrapped in a fieldset with a legend, and hidden fields send a fixed value (for example which page the lead came from).

Can visitors upload files through the generated form?

Yes, on a paid splitforms plan. Add a File field and the generator switches the form to multipart encoding. Pro ($5/month) and Annual ($49/year) accept up to 5 files of 5 MB each per submission; on the free plan the file is dropped and the other fields still arrive.

Where do the form submissions go?

To whatever URL is in the form's action attribute. The generator defaults to splitforms, but the output is a standard HTML POST, so it works with any endpoint that accepts form-encoded data, such as Formspree or your own server route. Change the destination by editing the action attribute. (Netlify Forms works differently: it needs a data-netlify attribute on a site hosted on Netlify, not an action URL.)

How is this different from Google Forms or Typeform?

Those tools host the form for you and hand back a link or an embed on their domain, with their branding. This generator gives you the form's source instead: plain markup you own and restyle, no iframe and no embed script, and an action URL you can point at any backend.

Simple pricing

How much does splitforms cost?

Free gives you 500 submissions for $0 — no card, no time limit. Pro is $5/month for 5,000 submissions a month, and Annual is $49/year for 15,000 a month with every Pro feature.

Free

$0— 500 submissions
 

No card, no time limit

Best for testing

For side projects and indie devs.

  • 500 free submissions
  • Unlimited forms
  • Email notifications included
  • Smart spam filtering
  • Submissions dashboard
  • Redirect after submit
  • MCP server included

Annual

$49/ year
About $4.08/mo, billed yearly
Best value

Every Pro feature with triple the volume — $0.27 per 1,000 at full use.

  • 15,000 submissions / mo
  • Unlimited forms
  • Everything in Pro
  • File uploads with 5 GB storage
  • 3 team seats
  • Priority email support

No credit card required on Free • Cancel anytime • Full pricing and FAQ