§ 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 500 submissions/month free with a real dashboard, permanent storage, and AI spam filtering. Starter adds notification emails, dedicated SMTP delivery, and webhooks for $1/month. 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 unlocks signed webhooks with retries on Starter and above. Web3Forms locks webhooks behind the paid tier.
File uploads: splitforms supports multipart file uploads when Storage is connected, with a current limit of 5 files per submission at 10 MB each. 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 500 submissions/month with dashboard storage and spam filtering; Starter adds notification emails, webhooks, exports, integrations, and retained uploads. 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 without a $10+ plan." splitforms unlocks signed webhooks on Starter for $1/month.
"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, and per-form filtering. Starter adds exports and webhook delivery.
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.
Starter deliverability is handled with dedicated SMTP, proper SPF/DKIM, and a maintained sender reputation. Your form-submission emails land in the inbox.
Webhooks, Storage-backed file uploads, CC/BCC recipients, custom redirect URLs, and the REST API are available without changing your form action URL. There is no "unlock the dashboard" upsell — the dashboard is free, while delivery and export features start on Starter.
§ 06
How to migrate from Web3Forms to splitforms
Migration is one URL change plus a key swap. 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`, and keep the hidden `access_key` field with your splitforms key. 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`, and replace the hidden `access_key` value with your splitforms key.
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 — 500 submissions/month, 2 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? No — keep the hidden field and replace its value with your splitforms access key. The endpoint stays `https://splitforms.com/api/submit`.
Does splitforms support file uploads? Yes. File uploads work when Storage is connected.
What about webhooks? splitforms unlocks signed webhooks with retries on Starter and above.
Is there a long-term plan? Yes — $59 for the 3-Year plan, which covers 15,000 submissions/month for 36 months.