Introduction

SendForm is a form backend for static sites. You point an HTML form at a SendForm endpoint, and SendForm receives the submission, validates it, filters spam, stores it, and delivers it to your inbox and any webhooks you configure. There is no server to run and no backend code to write.

Why SendForm

A contact form normally needs a server or a third-party script just to send an email. SendForm replaces that with a single hosted endpoint, so a fully static site can collect real submissions.

  • Works on any static host: GitHub Pages, Netlify, Vercel, Cloudflare Pages, Amazon S3, or plain HTML on a shared server.
  • Spam filtering, email notifications, webhooks, redirects and JSON responses out of the box.
  • A dashboard with every submission, per-form settings, and file attachments.

How it works

Each form you create gets a unique endpoint URL of the form https://sendform.net/!<form_id>, where <form_id> is a 10+ character alphanumeric ID. Put that URL in your form's action attribute, or POST to it with fetch(). Every submission is:

  1. Checked against the spam controls (honeypot, fill timing, proof-of-JS token).
  2. Rejected if the form's notification email has not been verified, or if the account is over its monthly submission limit.
  3. Stored, then delivered asynchronously by email to the notification address and any verified extra recipients, plus every enabled webhook.

Two kinds of form exist. A contact form takes an email and a message (plus any extra fields you add). A feedback form takes an anonymous rating and optional comment, and is normally embedded with the hosted widget.

Next steps