You know the feeling. You've built a clean, fast static site — Next.js, Astro, maybe just plain HTML.
Everything is perfect. Vercel hosting, free tier. Tailwind CSS looking sharp. Lighthouse score: 97.
Then you need a contact form.
And suddenly you're staring at three bad options:
- Write a backend. Spin up an Express server, configure Nodemailer, set up SMTP, handle spam, deploy it somewhere. All for a form that sends an email. A contact form.
- Use Formspree. It works. But the free tier caps you at 50 submissions/month. Fifty. If your site gets any real traffic, you'll burn through that in a week. Then it's $10/month. For a contact form.
- Use a PHP script. It's 2026. I shouldn't have to explain why this is a bad idea.
I kept thinking: why is this so hard? A contact form is one POST request. It writes to a database
and sends an email. That's it.
So I built splitforms.
## What splitforms does
One endpoint. No SDK. No backend code.
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_KEY">
<input name="email" type="email" required>
<textarea name="message" required></textarea>
<button>Send</button>
</form>
That's it. Submissions land in your dashboard with spam filtering, email notifications, and webhook
integrations.
## The free tier I wanted
Here's how splitforms compares on what actually matters — the free tier:
| Service | Free Submissions/Month |
|---|---|
| Formspree | 50 |
| Basin | 50 |
| Getform | 50 |
| Netlify Forms | 100 |
| Web3Forms | 250 |
| splitforms | 500 |
500 submissions/month. No credit card. No time limit. No "14-day trial."
When you do want paid features — webhooks to Slack/Discord, CSV exports, auto-responders — Starter is
$1/month. Not $10. Not $20. One dollar.
## Features developers actually asked for
- Signed webhooks (HMAC-SHA256) — pipe submissions anywhere with retry and dead-letter handling
- AI spam classifier — catches LLM-generated spam that honeypots miss
- MCP server — Claude Code, Cursor, and Windsurf can read submissions and manage forms natively. Yes, your AI coding agent can wire up forms for you.
- Row-level-secured Postgres — GDPR-compliant. We literally can't read your submissions.
- Edge-deployed — 14ms median latency across 14 regions
- Works with everything — HTML, React, Next.js, Vue, Svelte, Astro, Hugo, Gatsby, Webflow, Framer, Carrd, WordPress
## The MCP angle (this is the fun part)
splitforms ships an official Model Context Protocol server. That means you can tell Claude Code or
Cursor:
"Create a contact form on my Next.js site and wire it to splitforms."
And the AI agent does it — creates the form, gets the access key, writes the JSX, and submits a test
entry. No copy-pasting API keys, no reading docs.
## What I learned building it
Pricing is the hardest decision. I went with 500 free because I wanted the free tier to be
genuinely usable for a real site — not just a trial that runs out in a week.
Spam is harder than it looks. Honeypot fields catch the dumb bots. But in 2026, bots use LLMs to
fill forms with personalized-seeming messages. That's why I added an AI classifier on top.
People care about email deliverability more than I expected. Shared SMTP pools tank your inbox
placement. Dedicated SMTP with proper SPF/DKIM is non-negotiable.
## Try it
If you're currently paying for a form backend — or hitting free tier limits — give splitforms a try:
- Free forever: 500 submissions/month, 2 forms, no credit card → splitforms.com
- Starter: $1/month for webhooks, exports, and integrations
- 3-Year plan: $59 once, 15,000 submissions/month for 36 months
I'm the founder and I read every email. Reach me at hello@splitforms.com.
If you found this useful, I'd love an upvote or a share. I'm a solo dev building this — every bit of
distribution helps. 🙏
──────────────────

Top comments (0)