§ 01
Short answer: which one should you pick?
If your form is the lead-capture mechanism of anything you'd be unhappy losing — a portfolio that lands you work, a SaaS waitlist, a paid newsletter signup, a small business contact form — splitforms is the right call. Web3Forms' free tier emails submissions through shared infrastructure with no dashboard, no submission history, and no way to recover a lost or filtered email.
splitforms gives you 1,000 submissions/month free with a real dashboard, permanent storage, AI spam filtering, dedicated SMTP for deliverability, and webhooks — all on the free tier. For any project where the form actually matters, that's the safer architecture.
§ 02
Why developers switch from Web3Forms to splitforms
The trigger is almost always a missed submission. A spam filter eats one. A bounced email leaves no trace. A user reports they sent a contact form and got no reply. With Web3Forms' email-only model, there's no way to verify whether the submission ever arrived — it's gone. Once that happens once on a project that actually matters, you stop trusting email-only forwarding.
The second trigger is spam. Web3Forms relies on honeypot, which the modern wave of AI-generated spam routes around easily. splitforms layers an AI classifier on top of honeypot, catching LLM-written submissions that look human enough to bypass simpler filters. For any form on the open web getting real traffic, this is the difference between a usable inbox and a swamp.
The third trigger is wanting a real audit trail. splitforms stores every submission permanently, lets you search and filter, exports to CSV, and can re-deliver any submission to a webhook on demand. Web3Forms' free tier has none of that — once the email is sent, the submission no longer exists in their system.
§ 03
Web3Forms vs splitforms: feature comparison
Storage: splitforms stores every submission permanently with full search and export. Web3Forms' free tier doesn't store submissions at all — it forwards them as email and forgets them.
Spam protection: splitforms uses AI classification plus honeypot, which catches modern LLM-generated spam. Web3Forms uses honeypot only on free, with paid CAPTCHA add-ons.
Deliverability: splitforms uses dedicated SMTP with SPF/DKIM. Web3Forms uses shared sending infrastructure where every customer's reputation affects yours.
Webhooks: splitforms includes signed webhooks with retries on every plan. Web3Forms locks webhooks behind the paid tier.
File uploads: splitforms supports multipart file uploads on every plan including free. Web3Forms gates this behind paid tiers.
API: splitforms exposes a full REST API and MCP server on every plan. Web3Forms' API is more limited and feature-gated.
Free tier shape: splitforms gives you 1,000 submissions/month with full feature parity. Web3Forms gives you unlimited submissions but no dashboard, no storage, no webhooks — a different product entirely.
§ 04
Common Web3Forms issues splitforms solves
"A submission disappeared and I have no record of it." splitforms stores every submission. You can search, filter, export, and re-deliver to a webhook even if the original email never arrived.
"My contact-form emails are landing in promotions or spam." splitforms uses dedicated SMTP, not a shared pool. Inbox placement is dramatically more reliable.
"AI spam is sliding past my honeypot." splitforms runs every submission through an AI classifier specifically designed to catch LLM-generated spam.
"I want webhooks but don't want to upgrade." splitforms includes signed webhooks on the free tier — no paywall.
"I need a real dashboard for my client." splitforms ships a real dashboard with search, filter, and export on every plan.
§ 05
splitforms advantages at a glance
splitforms is what you switch to when email-only forwarding stops feeling safe. The free tier is positioned to be the backend you actually ship with — not a trial you outgrow in a week, and not a forwarder you stop trusting after the first missed submission.
Every submission is stored permanently. The dashboard supports search, filter, date range, per-form filtering, and CSV export. Any submission can be re-delivered to a webhook on demand.
Spam filtering combines an AI classifier with honeypot — accurate enough that you can drop CAPTCHA entirely on most forms. Less friction for legitimate users, fewer false negatives on AI-written spam.
Deliverability is handled with dedicated SMTP, proper SPF/DKIM, and a maintained sender reputation. Your form-submission emails land in the inbox.
Webhooks, file uploads, CC/BCC recipients, custom redirect URLs, and a full REST API are all included on the free tier. There is no "unlock the dashboard" upsell — the dashboard is free.
§ 06
How to migrate from Web3Forms to splitforms
Migration is one URL change. Step 1: sign up at splitforms.com for a free access key (no credit card). Step 2: in your form HTML, change the action URL from `https://api.web3forms.com/submit` to `https://splitforms.com/api/submit/YOUR_KEY`, and remove the `access_key` field (the splitforms key lives in the URL). Step 3: submit a test entry and confirm it appears in the splitforms dashboard.
If you've been relying on email-only delivery and have no record of past submissions, splitforms will start storing everything from the moment you switch — which is, for most users, the actual reason they switched. Existing field names, validation, and styling all work without modification.
§ 07
Real-world migration: a developer's 30-minute walkthrough
Day 1, minute zero: you `grep -r 'web3forms.com' .` in your static site repo and find the form. Most Web3Forms setups live in a single `index.html` or an Astro/Next.js component like `components/ContactForm.astro`. The Web3Forms convention is a hidden `<input type="hidden" name="access_key" value="abc-123-...">` paired with `action="https://api.web3forms.com/submit"`. Open a `splitforms-migration` branch, replace the action with `https://splitforms.com/api/submit/${import.meta.env.PUBLIC_SPLITFORMS_KEY}`, and delete the hidden `access_key` input — splitforms's key lives in the URL path, not as a form field. Add `PUBLIC_SPLITFORMS_KEY=sf_live_...` to your `.env` and to your host's environment (Vercel, Netlify, Cloudflare Pages — wherever you deploy).
Minute fifteen: push the branch and let your host build a preview deploy (`vercel`, `netlify deploy`, or `wrangler pages deploy`). Submit a test entry from the preview URL. Now flip on shadow mode: leave the production HTML pointed at Web3Forms, but in your branch add a second hidden `<iframe>`-style submission or a small client-side `Promise.all([web3formsPost, splitformsPost])` so both backends receive every submission for 24 hours. This is the moment you finally get a record of what was actually arriving — Web3Forms's email-only free tier silently lost submissions you never knew about. Splitforms's dashboard now shows you every one.
Day 2: flip the action URL to splitforms-only, redeploy, monitor for another 24 hours, then archive the Web3Forms account from their dashboard. The entire walkthrough fits inside splitforms's free tier — 1,000 submissions/month, unlimited forms — so you pay nothing during the cutover. Most static-site owners finish the migration in under thirty minutes, and the surprise win is the email-vs-stored delta: shadow mode usually surfaces 5-10% of submissions that were silently filtered or bounced from the Web3Forms shared sending pool.
§ 08
When NOT to switch to splitforms (honest take)
If you literally just need a one-off contact form on a static page — a personal portfolio you'll touch twice a year, a side-project waitlist that probably won't get traffic, a `hello@` form on a friend's freelance site — and you genuinely don't care if a submission gets lost, Web3Forms's no-account flow is faster to wire. You don't need to sign up, you don't manage an access key in env vars, you just paste their snippet and ship. Splitforms still requires creating an account (no credit card, but you do need an email and a password), which is a one-minute tax that's not worth paying for a form you'll never look at submissions from.
Web3Forms is also the right answer if you're publishing a tutorial, a starter template, or a code sample where readers will copy your snippet. Asking every reader to sign up for a third-party account before the snippet works is a real friction tax on the tutorial. Web3Forms's anonymous-submission flow is a better fit there — you can ship the snippet with a public access key the reader replaces, and the reader's first form works without a signup step.
And if you're a hobby developer who only needs the email forwarded to your personal inbox, never inspects the dashboard, and accepts the shared-sending-pool deliverability tradeoff in exchange for not having an account to manage, Web3Forms's model is genuinely simpler. Splitforms wins once you actually care about the data; for fire-and-forget forms, Web3Forms is fine.
§ 09
Frequently asked questions
Is splitforms a viable Web3Forms alternative? Yes, and it's the upgrade most people make once they need real submission storage, spam filtering, or deliverability that doesn't depend on a shared sending pool.
Will my existing HTML form work without changes? Yes. splitforms accepts the same encoding (`application/x-www-form-urlencoded` and `multipart/form-data`). The only change is the action URL.
Do I need to remove the `access_key` field from my form? Yes — the splitforms key is in the action URL itself, so the hidden `access_key` input from Web3Forms is no longer needed.
Does splitforms support file uploads on the free tier? Yes. File uploads work on every plan, including free.
What about webhooks? splitforms includes signed webhooks with retries on every plan, including free.
Is there a one-time payment plan? Yes — $59 for the 4-Year plan, which covers 15,000 submissions/month for 48 months.