Point any HTML form at one endpoint. 500 free submissions — no card, no time limit — and unlimited forms.
Create free accountStatic sites can't process form submissions on their own — there's no server to receive the POST request, validate input, send emails, or store data. But forms are essential: contact pages, lead capture, newsletter signups, event registrations. This article compares every method for handling forms on static sites in 2026, ranked from simplest to most complex. By the end, you'll know exactly which approach fits your project. If you already know you want the copy-paste route, jump straight to the static site contact form guide.
The simplest static site form backend
One endpoint, any host, zero server code. 500 free submissions total with dashboard and spam filtering.
What happens next ⚡
- 📥Submission received — stored in your searchable dashboard
- 📧Email notification — delivered to your inbox instantly
- 🛡️Spam filtered — rule-based content filter + honeypot, no CAPTCHA
- 🔗Webhook fired — optional: forward to Slack, Discord, Sheets
- ↩️User redirected — to your thank-you page
500 free submissions total · No credit card
Method 1: Third-party form backend API (Recommended)
You point your HTML form at an external API endpoint. The service handles storage, email delivery, spam filtering, and webhooks. splitforms is the leading option:
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_KEY">
<input type="text" name="name" required>
<input type="email" name="email" required>
<textarea name="message" required></textarea>
<button type="submit">Send</button>
</form>Pros:
- Works on any host — GitHub Pages, Netlify, Vercel, S3, anywhere
- Zero server code to write or maintain
- Dashboard with searchable submission history
- Smart spam filtering (on splitforms, not all providers)
- Webhooks for Slack, Discord, Zapier integrations
- Free tier covers most personal sites (500 total on splitforms)
Cons:
- External dependency (if the service goes down, forms break)
- Submission limits on free tiers
- Less control over the exact email formatting (though custom SMTP available)
Best for: 90% of static sites — portfolios, blogs, small business sites, landing pages.
Method 2: Platform-native forms (Netlify Forms)
If your site is hosted on Netlify, you can use data-netlify="true" and Netlify handles submissions at build time.
<form name="contact" method="POST" data-netlify="true">
<input type="text" name="name" required>
<input type="email" name="email" required>
</form>Pros:
- Zero configuration — just add an attribute
- No external service or API key needed
- Bundled with your hosting plan
Cons:
- Vendor lock-in — only works on Netlify
- Build-time form detection is fragile (fails on dynamic/client-rendered forms)
- Only 100 submissions/month free ($19/month for +1,000)
- No webhooks, no autoresponders, no smart spam filtering
- Move hosts = rewrite every form
Best for: Sites already on Netlify with simple form needs and low traffic.
Method 3: Serverless functions
Vercel, Cloudflare Workers, Netlify Functions, and AWS Lambda let you write a small handler that receives form POSTs and processes them.
// /api/contact.ts (Vercel / Next.js)
export async function POST(req: Request) {
const data = await req.json();
// Validate, store, send email, filter spam...
// You build ALL of this yourself
return Response.json({ ok: true });
}Pros:
- Full control over every aspect
- No per-submission costs (just function invocation limits)
- Can integrate with any database or email service
Cons:
- You build and maintain everything: validation, email delivery, spam filtering, storage, dashboards
- Email deliverability is your problem (SPF, DKIM, DMARC, IP reputation)
- Spam protection is your problem
- Time sink — 1 form = 4-8 hours of backend work vs 5 minutes with a form backend
Best for: Large teams with specific compliance, data residency, or integration requirements that off-the-shelf services can't meet.
Method 4: Email-based forwarding (FormSubmit, Web3Forms)
Both services forward submissions to email, but their storage differs: FormSubmit has no stored history, while Web3Forms Free lists 30 days of submission history. Neither includes free webhooks.
<!-- FormSubmit -->
<form action="https://formsubmit.co/your@email.com" method="POST">
<!-- Web3Forms -->
<form action="https://api.web3forms.com/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_KEY">Pros:
- Dead simple setup
- FormSubmit is unlimited; Web3Forms includes 250/month
- No account needed (FormSubmit)
Cons:
- No stored history on FormSubmit; 30-day free history on Web3Forms
- No spam filtering on FormSubmit; advanced protection and hCaptcha on Web3Forms Free
- No free webhooks
Best for: Hobby projects and personal sites where you just want submissions in your inbox and nothing more.
Method 5: Self-hosted backend
You run your own server (VPS, Docker, etc.) with a form-handling application — either custom-built or an open-source project.
Pros:
- Complete control over data and infrastructure
- No per-submission costs or limits
- Data never leaves your servers
Cons:
- Significant setup and maintenance time
- You handle SSL, uptime, backups, security patches
- Email deliverability (SPF/DKIM/DMARC) is your problem
- Spam protection is your problem
- Server costs ($5-20/month minimum for a VPS)
Best for: Organizations with strict data sovereignty requirements or existing infrastructure they want to leverage.
All methods compared
| Method | Setup time | Free limit | Dashboard | Spam filter | Host lock-in |
|---|---|---|---|---|---|
| splitforms (API) | 5 min | 500 total | ✅ | ✅ AI | None |
| Netlify Forms | 2 min | Unlimited on current credit plans | ✅ | Basic | Netlify only |
| Serverless function | 4-8 hrs | Varies | DIY | DIY | Platform |
| FormSubmit / Web3Forms | 2 min | Unlimited / 250 mo | ❌ / 30-day history | ❌ / hCaptcha | None |
| Self-hosted | Days | — | DIY | DIY | None |
The recommendation
For the vast majority of static sites, Method 1 (a form backend API) is the right choice. It gives you the most features for the least effort, works on every host, and scales from free to affordable. Specifically:
- splitforms — Best overall. 500 total free, smart spam filtering, webhooks from $5/mo (Pro), works everywhere. Endpoint:
https://splitforms.com/api/submit. - Netlify Forms — Best when you're already on Netlify and plan to keep hosting there.
- Serverless — Only if you have specific requirements a form backend can't meet.
- Email forwarding — Only for hobby projects where you don't need a dashboard.
- Self-hosted — Only for strict data residency requirements.
For a side-by-side comparison of hosted backends, platform-native forms and self-managed serverless endpoints, see the static site form backend chooser. If you don't want to run a database at all, see how a form without a database stores and emails each submission for you.
Email hello@splitforms.com if you need help choosing the right method for your specific stack.
FAQ
What is the best form handling method for a static site?
A third-party form backend API like splitforms is the best method for most static sites. You add a standard HTML form pointing at an external endpoint (https://splitforms.com/api/submit), and submissions are stored, filtered for spam, and emailed to you — all without writing server code. Free for 500 submissions total.
Can I handle forms on a static site without any backend?
Yes, using a form backend service. Services like splitforms, Formspree, and Getform provide an external API endpoint that your static HTML form posts to. The service handles storage, email delivery, spam filtering, and webhooks. No server-side code required on your site.
Does GitHub Pages support form handling?
No. GitHub Pages serves static files only — no server-side processing. To handle forms on a GitHub Pages site, use a third-party form backend. Point your form's action at https://splitforms.com/api/submit with your access key, and submissions work immediately.
What about Netlify Forms vs splitforms for static sites?
Netlify Forms only works when your site is hosted on Netlify and detected at build time; current credit plans include unlimited form submissions. splitforms is a portable external POST endpoint with 500 free submissions total that works on Netlify, Vercel, GitHub Pages, S3, and Cloudflare Pages.
Can I use a serverless function for static site forms?
Yes — platforms like Vercel, Cloudflare Workers, and Netlify support serverless functions you can write to process form submissions. However, you'll need to build and maintain email delivery, spam filtering, storage, and dashboards yourself. A dedicated form backend like splitforms provides all of this out of the box.