splitforms.com

Contact form without backend

Contact form without a backend or server.

Point a plain HTML form at one hosted endpoint — no server, database, or PHP. Every submission is emailed to you, stored, and spam-filtered.

  • 500 free / mo
  • No server or DB
  • Any static host
A plain HTML contact form posting straight to the splitforms hosted endpoint — no server

Just HTML, no backend

No PHP, Node.js, Python, database, or SMTP — plus one optional script tag for the time-trap field.

Works on any static host

GitHub Pages, Netlify, Vercel, Cloudflare Pages, or Amazon S3 — anywhere you can serve HTML.

Spam filtered by default

Honeypot, time-trap, and IP rate limits screen bots before they reach your inbox.

Copy-paste ready

No-backend contact form HTML, ready to paste.

A contact form without a backend works by pointing your HTML form's action at a hosted API instead of your own server. POST to https://splitforms.com/api/submit, add your access key as a hidden field, and the submission is emailed to you and saved to a dashboard — no PHP, Node process, or database required.

Generate access key
contact.html
<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
  <input type="hidden" name="redirect" value="https://yoursite.com/thanks">
  <input type="hidden" name="form_loaded_at" id="form_loaded_at">
  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1">

  <input name="name" type="text" placeholder="Name" required>
  <input name="email" type="email" placeholder="Email" required>
  <textarea name="message" placeholder="Message" required></textarea>
  <button type="submit">Send</button>
</form>

<script>
  document.getElementById('form_loaded_at').value = Date.now();
</script>

Setup

How to add a contact form without a backend.

Four steps, no server or database — the same whether you paste the form into raw HTML, a framework component, or a WordPress Custom HTML block.

Create a free access key

Sign up at splitforms (no credit card) and copy your form's access_key from the dashboard.

Point your form at the endpoint

Set the form's action to https://splitforms.com/api/submit with method POST, then add access_key as a hidden field.

Add the built-in spam fields

Include the hidden botcheck honeypot (leave it empty) and a form_loaded_at field set to the page-load timestamp — splitforms also rate-limits abuse automatically.

Deploy and test

Push the page live, submit a real test entry, and confirm it lands in your inbox and the submissions dashboard.

Why it works

Why does a contact form need a backend? It normally doesn't.

A working contact form usually needs four moving parts — a server to receive the POST, a database to store each message, an email service to notify you, and spam protection. On a static site or JAMstack app there's no server to run any of it, so a hosted contact form backend handles the server, database, email, and spam filtering for you — you just add one URL to your HTML form.

  • No server to receive the POST request
  • No database to store submissions
  • No SMTP or email service to configure
A no-backend form submission routed to email, dashboard, and integrations

What you get

What do you get with a no-backend contact form?

Every submission lands in your inbox and a searchable dashboard, stored in row-level-secured Postgres — see our GDPR page. The free plan covers 500 submissions a month across unlimited forms; see the full pricing breakdown.

  • Email notifications on every plan, free
  • Submissions dashboard — search, filter, CSV/XML/PDF export
  • Honeypot + time-trap spam filtering, optional reCAPTCHA v2
  • Slack, Discord, Telegram, Sheets, Notion, Airtable, and signed webhooks
  • File uploads — up to 5 files × 5 MB via the Storage integration
No-backend contact form submissions in the splitforms dashboard

How SplitForms works

From form to workflow in 3 simple steps.

Connect your form, collect every submission, and send data where it needs to go — without building backend infrastructure.

A SplitForms contact form submission launching straight to your inbox

Add your endpoint

Point your form to your unique SplitForms endpoint. That's it.

HTML form pointing at a SplitForms submit endpoint

Receive submissions

We instantly capture and organize every submission in your inbox.

Submissions inbox with searchable leads and status pills

Route anywhere

Send data to email, spreadsheets, CRMs, webhooks, and 7,000+ apps.

Generic integration tiles for email, sheets, chat, CRM, automate, and webhook

No credit card required. Set up in under 60 seconds.

Connect & automate

Connect your favorite tools and automate everything

SplitForms works with the destinations you route to and the platforms you build on — from Slack and Sheets to WordPress, Shopify, and Next.js. And with Stripe connected, your forms can take payments too.

Connect your SplitForms form to Slack, Google Sheets, Mailchimp, Zapier and more
NewTake payments on your formsDeposits, bookings, order forms — submitters check out through Stripe and the money goes straight to your Stripe account. Included on every paid plan.See plans →

Trusted by indie teams and agencies shipping forms worldwide

PETAL/COKRAFT.DELINEAR-XBUILD.DEVSTUDIO 71MERIDIANFRAME&CO

Testimonials

Loved by developers shipping at every scale.

40 quotes on record — from indie hacks to agency migrations.

FAQ

Contact form without a backend, answered.

View all FAQs
Can I have a contact form without a backend?

Yes. Use a hosted form backend like splitforms. You point your HTML form at their endpoint URL, and they handle storage, email notifications, and spam filtering. No server-side code required.

Do contact forms need a database?

No. A hosted form backend stores submissions for you. With splitforms, submissions are stored in row-level-secured Postgres — you don't need to set up or maintain a database.

How do I collect form submissions without a server?

Set your form's action attribute to a form backend endpoint (e.g., https://splitforms.com/api/submit), add your access key as a hidden field, and submissions are sent directly to the backend — bypassing your server entirely.

Does this work on static sites?

Yes. Form backends work on any static site host: GitHub Pages, Netlify, Vercel, Cloudflare Pages, Amazon S3, or any web server serving HTML files.

Is a contact form without a backend secure?

splitforms filters spam with a hidden honeypot field, a time-trap field that catches instant bot submissions, and server-side content heuristics — plus an optional reCAPTCHA v2 if you want extra coverage. Submissions are also rate-limited (6/minute per IP) to block abuse.

How many submissions can I collect for free?

The free plan includes 500 submissions per month across unlimited forms, with email notifications, spam filtering, and dashboard access included. Paid plans start at $5/month (Pro) for 5,000 submissions with exports and webhooks.

Can I connect a no-backend form to Slack, Sheets, or email?

Email notifications are included free on every plan. Paid plans add one-click integrations for Google Sheets, Notion, Airtable, Slack, Discord, Telegram, WhatsApp, Mailchimp, and generic signed webhooks.

Does a contact form without a backend need JavaScript?

No. A native HTML form submit works with zero JavaScript. Add a small script only if you want to set the optional time-trap spam field or show an inline success message instead of a redirect.

Simple pricing

Start free. Scale when you need more.

Choose a plan that fits your workflow — from a free form endpoint to full automations, exports, Stripe payments, and higher submission limits.

Free

$0
 

Free forever

Best for testing

For side projects and indie devs.

  • 500 submissions / mo
  • Unlimited forms
  • Email notifications included
  • Honeypot spam filtering
  • Submissions dashboard
  • MCP setup stays free
  • No credit card required

3-Year

$59/ first 3 years
was $99 · save 40% · new-user price

Pay $59. 3 years sorted.

  • 15,000 submissions / mo
  • Unlimited forms
  • Everything in Pro
  • $59 for 3 years, then $59/year
  • Long-term discount
  • Priority support included
  • Vote on the roadmap

No credit card required on Free • Cancel anytime