send.webforms.toRead the docs →

Free HTML form generator

Define your fields - any name, any type, in any order - and copy clean HTML. Eleven input types including selects with options, radio groups, dates and file uploads. Labels are wired with for/id, name attributes are derived from your labels, and nothing you type leaves this page.

Generated HTML
<form action="https://send.webforms.to/wft_your_key" method="POST">
  <label for="name">Name</label>
  <input type="text" id="name" name="name" required>

  <label for="email">Email</label>
  <input type="email" id="email" name="email" required>

  <label for="message">Message</label>
  <textarea id="message" name="message" required></textarea>

  <button type="submit">Submit</button>
</form>

Why this markup looks the way it does

Every field gets a visible <label> rather than a placeholder doing a label's job - placeholders vanish the moment someone types, which is how half-filled forms get abandoned. Radio groups sit in a <fieldset> with a <legend>, which is what screen readers announce. Optional fields say "(optional)" in the label because a red-asterisk legend is the thing everyone has agreed to pretend works. There is no wrapper framework and no CSS opinion - it drops into whatever styles your site already has.

The form still needs somewhere to send

The generated action points at a placeholder. HTML can render a form but not deliver one - the POST needs a server. Create a free form and swap in your real endpoint: submissions land in email, Slack, Telegram or a webhook with no backend code on your side, and spam filtering runs before anything is delivered.

Building a contact form specifically? The contact form generator is quicker - fixed fields, one toggle each. And the templates gallery has complete forms for common jobs, field choices explained.