If you build forms but don't want to run your own server to handle them, a form backend does the heavy lifting after someone hits submit: receiving data, validating it, storing it, sending notifications, handling file uploads, and firing off integrations. You write the markup, the backend gives you an API to call.
I went through the major options for 2026 to see what each one actually does well, and where each one bites you. Here's the rundown.
- Forminit for typed validation, file uploads, an optional SDK, and attribution tracking.
- Formspree for a dead-simple POST endpoint, nothing fancy.
- FormSubmit / EmailJS if all you want is email forwarding and no storage.
- Netlify Forms for zero-config, but only if you live on Netlify.
- Basin for budget storage plus email, no extras.
Quick comparison
| Forminit | Formspree | FormSubmit | EmailJS | Netlify Forms | Basin | |
|---|---|---|---|---|---|---|
| Type | Backend API | Form backend | Email forward | Email send | Platform forms | Form backend |
| Storage | Yes (inbox) | Yes (table) | No | No | Yes (table) | Yes (table) |
| Server validation | Typed blocks | Limited | No | No | No | No |
| File uploads | 25 MB | 10 MB | ~5 MB | Email limit | 10 MB | 10 MB |
| API key auth | Yes | No | No | Template | No | No |
| SDK | Optional | No | No | JS lib | No | No |
| Framework proxies | Next, Nuxt | No | No | No | No | No |
| Webhooks | Paid | Paid | No | No | Paid | Paid |
| UTM capture | Yes | No | No | No | No | No |
| Any host | Yes | Yes | Yes | Yes | Netlify only | Yes |
| Email hidden | Yes | Yes | No | Yes | Yes | Yes |
| Starts at | Free | $10/mo | Free | Free | Free | Free |
1. Forminit
Forminit (formerly Getform.io) is a headless form backend built around a block-based data model. Rather than dumping everything into flat key-value pairs, each field is a typed block (text, email, phone, URL, date, rating, file, country) that gets validated on the server before anything is stored.
Strengths:
- Real server-side validation. Emails are checked against RFC 5322, phones against E.164, dates against ISO 8601, ratings constrained to 1 to 5, country codes to ISO 3166-1 alpha-2. Garbage gets rejected before it lands in your data.
-
Two auth modes. Public mode (no key, good for static sites) and protected mode (key via
X-API-KEY, good for server-side proxies). Protected mode unlocks higher rate limits and blocks unauthorized submissions. -
Optional SDK. You can POST directly with plain
fetch, or use the JavaScript SDK if you want the convenience. It ships with ready-made proxy handlers for Next.js (createForminitProxy) and Nuxt.js (createForminitNuxtHandler) so your keys stay server-side. - Generous file uploads. 25 MB per submission across 50+ MIME types, with direct download links in the dashboard.
- Inbox-style dashboard. Star, set status, leave notes, filter, and export to CSV.
- Field-level form analytics. Beyond submission counts, you get breakdowns at the field level: how people answer select, checkbox, and radio fields, so you can actually see what your audience is choosing rather than just how many submitted.
- Attribution out of the box. Auto-captures UTM params, ad click IDs (Google, Meta, Microsoft, TikTok, X), referrer, and geo.
Pricing: Free (100 subs/mo, includes file uploads, 50 MB storage, and Zapier), Pro $19/mo (3,000), Business $49/mo (10,000). Annual billing knocks off two months.
Best for: Developers who want typed validation, file uploads, field-level analytics, and an optional SDK, especially Next.js or Nuxt.js teams who want the proxy pattern.
2. Formspree
Formspree has been a go-to since 2014. You POST to an endpoint, and that's basically it.
Strengths: trivial setup (POST https://formspree.io/f/{formId}), submission storage with a basic dashboard, email notifications, a REST API for reading submissions, and a @formspree/react package for form state.
Weak spots:
- No API key auth. Every endpoint is public, so anyone who finds the URL can post to it.
- No typed validation. Flat key-value pairs, no format checking.
- No dedicated SDK beyond the React state helper, so no UTM capture, upload progress, or proxy handlers.
- Webhooks are paid-only, file uploads cap at 10 MB, and there's no attribution tracking.
Pricing: Free (50 subs/mo), Starter $10/mo (100), Growth $30/mo (1,000).
Best for: The simplest possible setup when you don't need validation, auth, or big uploads.
3. FormSubmit.co
Point your form's action at https://formsubmit.co/your@email.com and submissions land in your inbox. No account needed.
Strengths: zero setup, free with no obvious limits, plus basics like custom redirects, CC recipients, and auto-responses.
Weak spots:
- Your email sits in the HTML source. Anyone can view-source it, and bots will scrape it for spam lists, which is a GDPR headache if you're in the EU.
- No storage. No dashboard, search, or export. If the email never arrives, the data's gone.
- No file uploads, no validation, no webhooks, no API.
- It claims not to store data, but there's no DPA, audit, or compliance docs to back that up.
Pricing: Free.
Best for: Throwaway personal projects where email exposure and GDPR aren't concerns. I wouldn't ship it to production.
4. EmailJS
EmailJS sends form data as templated emails straight from the browser.
Strengths: a template system with variables, fully client-side (no server), support for Gmail/Outlook/custom SMTP, and a generous free tier (200 emails/mo, 2 templates).
Weak spots:
- It's not really a form backend. It's email delivery: no storage, no dashboard, no API.
- No file uploads beyond email attachments, no server-side validation, no webhooks.
- Your template and service IDs are visible in client code.
- Deliverability is hit-or-miss on free email accounts, so expect some spam-folder landings.
Pricing: Free (200 emails/mo), Professional $15/mo (500).
Best for: Simple contact forms that only need an email notification.
5. Netlify Forms
Built into Netlify hosting. Add a netlify attribute to your form and it's detected automatically.
Strengths: zero config if you're already on Netlify, built-in Akismet spam filtering, storage in the Netlify dashboard, and a free tier bundled with hosting.
Weak spots:
- Hard platform lock-in. Move to Vercel or Cloudflare and your forms simply break.
- 10 MB upload cap, no server-side validation, webhooks/API on paid plans only, no UTM tracking.
- No SDK. It's HTML-based, so no AJAX handling or upload progress, and the dashboard is bare-bones.
Pricing: Free (100 subs/mo with hosting), Pro $19/mo for webhooks.
Best for: Sites already on Netlify that just need a basic contact form.
6. Basin
Basin sits between pure email forwarders and full backends. It stores submissions and sends notifications.
Strengths: simple POST setup, storage with a dashboard, spam filtering (honeypot plus reCAPTCHA), and email notifications.
Weak spots: no server-side validation, no auth modes (all endpoints public), no SDK, a 10 MB upload cap, paid-only webhooks, and no attribution tracking.
Pricing: Premium $15/mo (1,000).
Best for: Budget forms needing storage plus email, nothing more.
So which one?
- Forminit is the most full-featured pick for developers building their own form UIs: validation, auth, 25 MB uploads, field-level analytics, an optional SDK, and attribution.
- Formspree for a quick POST endpoint for prototypes and low-volume forms.
- FormSubmit for a free email forwarder for personal projects; not for production.
- EmailJS for email delivery with templates when you don't need a backend at all.
- Netlify Forms for zero-config if you've accepted the Netlify lock-in.
- Basin for cheap storage plus email without the extras.
What are you using for form handling in 2026? Curious whether anyone's found a setup they actually love. Drop it in the comments.
Top comments (0)