The form backend for any website
Point your HTML, WordPress, React or AI-built form at one URL. FormSubmit emails you every submission, blocks spam, stores files and sends data to webhooks, Slack, Discord and Google Sheets. No server code. No SMTP. No plugins.
- Free plan, no card
- Works with plain HTML
- Every integration on every plan
<form action="https://formsubmit.app/f/k3m9p2qabx" method="POST">
<input type="text" name="name" placeholder="Your name" required>
<input type="email" name="email" placeholder="you@example.com" required>
<textarea name="message" required></textarea>
<!-- Honeypot: bots fill it, people never see it -->
<input type="text" name="_gotcha" style="display:none">
<button type="submit">Send</button>
</form>Works with every stack — if it can render a form, it works
- HTML
- WordPress
- React
- Next.js
- Vue
- Nuxt
- Svelte
- Astro
- Hugo
- Jekyll
- Eleventy
- Gatsby
- Webflow
- Framer
- Lovable
- v0
- Bolt
- GitHub Pages
Why FormSubmit exists
A contact form shouldn't need a server.
FormSubmit is a headless form backend: you keep full control of your form's HTML and design, and we run the boring, fiddly infrastructure behind it.
Read our storyMost websites don't have a backend anymore
Static sites, JAMstack frameworks, site builders and AI-generated apps ship beautiful frontends with nowhere to send a form. Spinning up a server, database and SMTP account for a contact form is overkill.
Forms are deceptively hard to run well
Deliverability, spam bots, file storage, retries when an integration is down, GDPR-friendly retention — each is a small project. FormSubmit does all of it behind one URL.
Your data should stay yours
We hash IP addresses, encrypt your integration secrets, keep uploads private, request the narrowest Google permission possible, and let you delete or never store submissions.
Pricing you can predict
Four simple plans, every integration included on all of them, and no data loss when you hit a limit. If you outgrow a plan, submissions wait safely until you decide.
How it works
Live in three steps
From zero to receiving submissions in about a minute.
- 01
Create a form
Sign in with Google and create a form. You get a unique endpoint like formsubmit.app/f/k3m9p2qabx.
- 02
Point your form at it
Set action to your endpoint and method to POST — or copy code for your framework from the builder.
- 03
Receive submissions
Get emails, see everything in your inbox, and forward data to Slack, Sheets, webhooks and more.
Plain HTML — zero JavaScript
Visitors are redirected to your thank-you page (or our hosted one) after submitting.
<form action="https://formsubmit.app/f/k3m9p2qabx" method="POST">
<input type="text" name="name" placeholder="Your name" required>
<input type="email" name="email" placeholder="you@example.com" required>
<textarea name="message" required></textarea>
<!-- Honeypot: bots fill it, people never see it -->
<input type="text" name="_gotcha" style="display:none">
<button type="submit">Send</button>
</form>Or AJAX with JSON responses
Send Accept: application/json and handle the response in your UI.
const res = await fetch("https://formsubmit.app/f/k3m9p2qabx", {
method: "POST",
headers: { Accept: "application/json" },
body: new FormData(form),
});
const { ok, id, error } = await res.json();
// → { ok: true, id: "r8T2kLm0Qa9zXc1V", message: "Thanks!..." }Features
Everything a form needs, nothing it doesn't
Every feature below is included on every plan — including Free.
Email notifications
Every submission lands in your inbox as a clean, readable email — to you and any teammates you add.
Learn moreSpam protection
Honeypots, timing checks, content heuristics, rate limiting and optional captchas — on every plan.
Learn moreFile uploads
Accept resumes, images and documents. Files are stored privately and shared via signed links.
Learn moreWebhooks
POST every submission as signed JSON to your API, Zapier, Make or n8n — with automatic retries.
Learn moreAutoresponder
Automatically thank the person who filled your form with a personalised confirmation email.
Learn moreDomain allowlist
Only accept submissions from the domains you choose — others are rejected.
Learn moreHosted forms
No website? Share a hosted form page at formsubmit.app/to/your-form.
Learn moreVisual form builder
Drag-and-drop fields, preview, then export code for 13 frameworks or publish a hosted page.
Learn moreData retention
Keep submissions forever, for a fixed period, or don’t store them at all.
Learn moreIntegrations
Send submissions wherever your team works
Bring your own keys and connect in a minute. Failed deliveries retry automatically and every attempt is logged. Google Sheets uses the minimal drive.file permission — we can only touch the spreadsheets we create.
- Webhooks
- Slack
- Discord
- Google Sheets
- Airtable
- Mailchimp
- Kit (ConvertKit)
- + Zapier, Make & n8n via webhooks
Spam filter — last 30 days
Illustrative breakdown of how filtered submissions are typically caught.
Spam protection
Layered spam defence, on by default
Most bots are caught silently by the honeypot and timing checks, without making real people solve puzzles. Anything suspicious goes to a Spam folder — and never counts toward your quota.
- Honeypot + time-to-submit checks
- Content scoring with adjustable sensitivity
- Your own blocked keywords
- Per-IP rate limiting & duplicate detection
- reCAPTCHA, hCaptcha or Turnstile with your keys
Pricing
Simple plans that grow with you
Start free. Upgrade when you need more forms or submissions. Yearly plans include two months free.
Free
$0/mo
- 1 form
- 50 submissions / mo
- 100 MB file storage
Starter
$5/mo
- 2 forms
- 1,000 submissions / mo
- 250 MB file storage
Pro
$15/mo
- 10 forms
- 5,000 submissions / mo
- 1 GB file storage
Business
$50/mo
- Unlimited forms
- 10,000 submissions / mo
- 10 GB file storage
Frequently asked questions
What is a form backend?
A form backend is a hosted service that receives HTML form submissions for you. Instead of writing server code, you set your form's action to an endpoint URL; the service stores the submission, filters spam, emails you and forwards data to other tools.
Do I need to write any server code to use FormSubmit?
No. Set your form's action to your FormSubmit endpoint (https://formsubmit.app/f/your-id) and method to POST. It works with plain HTML, any JavaScript framework, WordPress, Webflow, Framer and AI-built sites.
Is FormSubmit free?
Yes. The Free plan includes 1 form, 50 submissions per month and 100 MB of file storage, with spam protection, webhooks and every integration. Paid plans start at $5/month, and yearly billing gives you two months free.
What happens if I go over my monthly submission limit?
Nothing is lost. Submissions are still accepted and stored, but they are locked — you can't view them and they aren't emailed or forwarded — until you upgrade or your usage resets at the start of the next month. We email you at 80% and 100%.
How does FormSubmit stop spam?
Every plan includes a honeypot field, a time-to-submit check, content heuristics, your own blocked keywords, duplicate detection and per-IP rate limiting. You can also add reCAPTCHA, hCaptcha or Cloudflare Turnstile with your own keys. Spam goes to a separate folder and doesn't count toward your quota.
Can I send submissions to Google Sheets without giving access to my whole Drive?
Yes. FormSubmit only requests Google's drive.file scope, so it can only access the spreadsheets it creates for you — never your other files.
Where is my data stored and how long is it kept?
Submissions are stored in Postgres and files in private object storage. You choose retention per form: forever, 1 year, 90, 30 or 7 days, or don't store at all (forward to email and integrations only).
Your form backend is 60 seconds away
Sign in with Google, create a form, paste the endpoint. Free forever for small sites — no credit card.