splitforms.com

Free HTML form generator.

Visual builder for HTML contact forms. Pick fields, set required, customize styling, copy clean production code. No login, no rate limit, no watermark.

1. Backend

where submissions go

Don't have one? Get a free splitforms key — 1,000 submissions/month, no credit card.

2. Fields

Click a button below to add a field. Drag handles aren't supported (yet) — use ↑ ↓ to reorder.

text · name
email · email
textarea · message

3. Submit button + style

Live preview

sandboxed iframe · no real submissions

HTML code

<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, 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; }
    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 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="you@example.com" 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>

Drop into any HTML page, Next.js component, Astro layout, Webflow embed, WordPress block, or static site. Replace YOUR_ACCESS_KEY with a key from your form backend (or get a free one at splitforms.com).

Where do the submissions go?

By default, generated forms post to splitforms.com/api/submit — get a free key (1,000 submissions/month, no credit card) and submissions land in your inbox + dashboard. You can also replace the form action URL with your own backend, Formspree, Netlify Forms — anywhere that accepts a POST.

Why splitforms
  • 1,000 free submissions/month, forever
  • Spam filtering (honeypot + AI classifier)
  • Free webhooks: Slack, Discord, WhatsApp, custom
  • CSV export, real dashboard
  • $5/mo Pro for 5,000 submissions
  • $59 one-time for 4 years (15K/mo)

FAQ

Is this HTML form generator really free?

Yes. There's no signup, no rate limit, no watermark. Use the generated HTML in any project — commercial or personal. The form action defaults to splitforms.com (which has a free 1,000/mo tier), but you can swap in any backend URL.

Where do the form submissions go?

Wherever you point the form action attribute. By default the generator uses https://splitforms.com/api/submit — get a free splitforms key at splitforms.com (1,000 submissions/month free), or replace with your own endpoint, Formspree, Netlify Forms, your own server — anywhere that accepts a POST.

Does the generated form include spam protection?

Yes — every form includes a hidden honeypot input (the standard anti-bot technique). When the form posts to splitforms, the honeypot is processed automatically. With other backends you'll need to handle the honeypot value yourself.

Can I add custom CSS?

Yes. The generator outputs unstyled semantic HTML by default. Pick a styling preset (Minimal, Modern, Dark) to add starter CSS, or copy the bare HTML and bring your own styles. Tailwind, vanilla CSS, CSS modules — works everywhere.

What field types does the form generator support?

Text, email, phone (tel), URL, number, date, textarea, and dropdown (select with options). All types are standard HTML — no custom widgets. Works on every modern browser without JavaScript.

Can I host the form on a static site (Next.js, Astro, Webflow)?

Yes. The output is plain HTML — drop into any framework that renders HTML, including Next.js, React, Vue, Astro, Webflow, Carrd, WordPress, or static HTML files. No build-time integration required.

How is this different from Form Builder by Google or Typeform's editor?

This generator outputs plain HTML you own and can host anywhere. Google Forms locks you into Google's UI; Typeform has its own embed code. With this generator you ship clean HTML that loads in 50ms instead of 2 seconds.