splitforms.com
All articles/ COMPARISONS7 MIN READPublished June 15, 2026UPDATED June 30, 2026

Static Site Form Handling: Every Method Compared (2026)

Compare every way to handle forms on a static site in 2026: form backend APIs, Netlify Forms, serverless functions, email forwarding, and self-hosted.

✶ Written by
splitforms.com / blog

Founder of splitforms — the form backend API for developers. Writes about form UX, anti-spam, and shipping web apps without backend code.

Static 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.

contact-form.html

The simplest static site form backend

One endpoint, any host, zero server code. 500 submissions/month free with dashboard and spam filtering.

What happens next ⚡

  • 📥Submission received — stored in your searchable dashboard
  • 📧Email notification — delivered to your inbox instantly
  • 🛡️Spam filtered — AI classifier + honeypot, no CAPTCHA
  • 🔗Webhook fired — optional: forward to Slack, Discord, Sheets
  • ↩️User redirected — to your thank-you page
Response time
14ms
median edge latency across 14 regions
Get Free Access Key →

500 submissions/month free · 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
  • AI spam filtering (on splitforms, not all providers)
  • Webhooks for Slack, Discord, Zapier integrations
  • Free tier covers most personal sites (500/month 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 AI 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)

Services like FormSubmit and Web3Forms forward form submissions directly to your email. No dashboard, no storage, no 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
  • Generous or unlimited free tiers
  • No account needed (FormSubmit)

Cons:

  • No submission dashboard or storage
  • No spam filtering (FormSubmit) or basic only (Web3Forms)
  • No webhooks or integrations
  • Lose an email = lose the submission

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

MethodSetup timeFree limitDashboardSpam filterHost lock-in
splitforms (API)5 min500/mo✅ AINone
Netlify Forms2 min100/moBasicNetlify only
Serverless function4-8 hrsVariesDIYDIYPlatform
FormSubmit / Web3Forms2 minUnlimited*❌ / BasicNone
Self-hostedDaysDIYDIYNone

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/mo free, AI spam filtering, webhooks from $1/mo, works everywhere. Endpoint: https://splitforms.com/api/submit.
  • Netlify Forms — Only if you're already on Netlify and have under 100 submissions/month.
  • 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.

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/month.

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. splitforms works on any host (Netlify, Vercel, GitHub Pages, S3, Cloudflare Pages) because it's a simple external POST endpoint. splitforms also offers 500 free submissions/month vs Netlify's 100.

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.

About the author
✻ ✻ ✻

Get your free contact form API key in 60 seconds.

500 free form submissions per month. No credit card. No SDK, no PHP, no plugin. Drop one POST endpoint in your form and submissions land in your dashboard and can notify your inbox on every plan.

Generate access key →Read the docs
founders pricing locked in · early access open