Create a free splitforms form
Sign up and add a form in the dashboard. Free covers 500 submissions a month on unlimited forms, with email notifications and spam filtering included and no credit card required.
JAMstack form backend
Point a native form action or a fetch() call at one endpoint. Every submission is stored, emailed, and spam-filtered — no serverless function of your own to run.

The browser POSTs straight to one endpoint — no serverless function or API route of your own to deploy or maintain.
A honeypot and a time-trap field catch bots on your static site form without a CAPTCHA or any JavaScript.
Every submission is saved to your dashboard and emailed to you — 500 a month free, no credit card.
Copy-paste ready
Drop this into any static template — Astro, Next.js, Hugo, Eleventy, or Webflow — point the action at the endpoint, and add your access key. That's the whole integration: no build step, no serverless function.
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
<input type="hidden" name="form_loaded_at" value="TIMESTAMP_ON_LOAD">
<input type="hidden" name="redirect" value="https://yoursite.com/thanks">
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
<input name="name" placeholder="Name" required>
<input type="email" name="email" placeholder="Email" required>
<textarea name="message" placeholder="Message" required></textarea>
<button type="submit">Send</button>
</form>How to connect it
Five steps, no server code of your own. The same path works whether your framework outputs pure static HTML or hydrates islands with JavaScript.
Sign up and add a form in the dashboard. Free covers 500 submissions a month on unlimited forms, with email notifications and spam filtering included and no credit card required.
Set a native <form action="https://splitforms.com/api/submit" method="POST">, or POST with fetch and FormData from a React, Vue, or island component — add access_key as a hidden field either way.
Include a hidden botcheck input that must stay empty and a form_loaded_at hidden field set to a timestamp when the page loads. splitforms uses both to catch bots without a CAPTCHA.
Add a redirect field with your thank-you page URL. A static site has no server to issue a redirect after submit, so splitforms sends the visitor there directly.
Submit a test entry, confirm it lands in your inbox and dashboard, then wire up Slack, Google Sheets, Notion, Airtable, or a signed webhook to Zapier, Make, or n8n.
What it does
A JAMstack form backend is a hosted API that processes your static site's form submissions, since there's no server of your own to run the logic. splitforms receives each POST, stores the lead, emails your team, filters spam, and forwards signed webhooks — all without a serverless function in the middle.

Submit with fetch
No. Your static site form posts standard FormData straight to one form endpoint — splitforms validates the access key, runs the spam classifier, and forwards the submission, so there's no serverless function, API route, or database for you to build. Want an inline success state without a reload? POST with fetch and FormData from a React, Vue, Svelte, or Astro island — the same endpoint a native form uses.

Spam protection
Add the botcheck honeypot field and the form_loaded_at time-trap field — two hidden inputs splitforms reads automatically. Server-side content heuristics run on top, and you can switch on optional reCAPTCHA v2 for an extra layer. None of it requires JavaScript or a CAPTCHA on the happy path.

How SplitForms works
Connect your form, collect every submission, and send data where it needs to go — without building backend infrastructure.

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

We instantly capture and organize every submission in your inbox.

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

No credit card required. Set up in under 60 seconds.
Connect & automate
SplitForms works with the destinations you route to and the platforms you build on — from Slack and Sheets to WordPress, Shopify, and Next.js. And with Stripe connected, your forms can take payments too.

Trusted by indie teams and agencies shipping forms worldwide
Testimonials
40 quotes on record — from indie hacks to agency migrations.
“I replaced a Lambda + DynamoDB + SES contact form with six lines of HTML. It took eleven minutes, and the dashboard is better than what I was going to build.”
“We migrated 14 client sites off Formspree in a single weekend. The price is a third of what we paid, the API is more honest, and the spam filter actually works.”
“The webhook payload is signed, idempotent, and well-shaped. It reads like code from a competent team, not a CRUD app held together with duct tape.”
“I stopped reaching for Typeform on small marketing sites. splitforms covers 90% of the use case at none of the bloat.”
“I onboarded our whole agency in an afternoon. The MCP integration meant Cursor literally dropped the form straight into our client repos for us.”
“The free plan gave me 500 submissions before I paid a cent, and Pro is five dollars a month. I've spent more on coffee deciding which backend to use.”
“Spam went from forty junk entries a day to zero, with no reCAPTCHA puzzle ruining the form. The honeypot and time-trap just quietly do their job.”
“Point the form action at one endpoint and you're done. No SDK, no client library, no build step. This is how a form backend should feel.”
“Leads land in Slack the second someone submits, and a copy goes to Google Sheets for the sales team. I wired both up in under ten minutes.”
“I run a static Hugo site on a five-dollar VPS. splitforms gave it a real contact form without me standing up a single server.”
Questions
A JAMstack form backend is a hosted endpoint that receives form submissions from static sites or frontend apps, then handles storage, email delivery, spam filtering, and webhooks without requiring your own server.
Yes for most portable form-backend use cases. Netlify Forms is convenient if you stay on Netlify, but splitforms works on any host and includes dashboard storage, email, signed webhooks, file uploads, and spam filtering.
Yes. Use a native HTML form action for static pages or submit with fetch from a frontend component. The same endpoint works across all JAMstack frameworks.
No. You can POST directly from the form to splitforms. Use a serverless function only if you need custom business logic before accepting the submission.
Add the botcheck honeypot field and the form_loaded_at time-trap field, both hidden inputs splitforms reads automatically. Server-side content heuristics run on top, and you can turn on optional reCAPTCHA v2 if you want an extra layer — none of it requires JavaScript.
Add a hidden redirect field with your thank-you page URL. Since a static site has no server to send a redirect response, splitforms sends the visitor's browser there directly after it accepts the submission.
Free covers 500 submissions a month on unlimited forms, with email notifications, spam filtering, and dashboard storage included. Webhooks, integrations, and exports need Pro ($5/mo); auto-responder is paid plans.
Simple pricing
Choose a plan that fits your workflow — from a free form endpoint to full automations, exports, Stripe payments, and higher submission limits.
For side projects and indie devs.
For agencies and growing products.
Pay $59. 3 years sorted.
No credit card required on Free • Cancel anytime