Collecting data from website visitors is a fundamental need for almost every website. Whether you're building a portfolio, a static site, or a landing page, you'll probably need a contact form.
But there’s a classic problem developers run into:
Where does the form submission go if you don’t have a backend?
In this guide we'll break down the main approaches developers use to handle HTML forms without a backend, and the pros and cons of each option.
Why HTML Forms Normally Require a Backend
HTML forms are designed to send data to a server using the POST request.
Normally the form action points to a backend endpoint that processes the submission.
Typical backend setups include:
- PHP scripts
- Node.js / Express APIs
- Python (Flask or Django)
- Ruby / Rails
The backend usually:
- validates the data
- sends email notifications
- stores the submission
- triggers webhooks or integrations
Without that server endpoint, the browser has nowhere to send the form submission.
That’s why developers building static sites often ask:
How do I create an HTML form without a backend?
The Problem With Email-Only Form Handling
One workaround developers sometimes use is mailto: links or simple email scripts.
Unfortunately this approach has a few issues.
Spam filtering
Messages from unknown servers or scripts often end up in spam folders.
Missed notifications
If the recipient doesn't constantly monitor their inbox, leads can be missed.
No delivery guarantees
If an email fails, there is usually no retry or fallback.
Many developers eventually move to a form backend service instead.
Option 1 — Build Your Own Backend
If you’re comfortable with server-side development, you can create your own form handler.
Common approaches include:
Node / Express
app.post('/contact', (req, res) => {
const { name, email, message } = req.body
// validate and send email
})
Python (Flask)
@app.route('/contact', methods=['POST'])
def contact():
data = request.form
# process form submission
PHP
mail($to, $subject, $message);
While this gives you full control, it also means you must manage:
- hosting
- security
- spam protection
- email delivery
- maintenance
For many small projects this is unnecessary complexity.
Option 2 — Use a Form Backend Service
This is the most common solution for static sites.
A form backend service provides a hosted endpoint that receives form submissions.
Examples include:
- Formspree
- Basin
- Formkeep
- Getform
You simply update your form's action attribute to their endpoint.
Example:
<form action="https://formspree.io/f/your-form-id" method="POST">
<label>Name</label>
<input type="text" name="name" required>
<label>Email</label>
<input type="email" name="email" required>
<label>Message</label>
<textarea name="message" required></textarea>
<button type="submit">Send</button>
</form>
These services typically handle:
- spam filtering
- submission storage
- email notifications
- webhooks
If you're comparing options, you may find these breakdowns useful:
- Formspree pricing explained (2026)
- Formspree free plan limits
Option 3 — Messaging Notifications (WhatsApp / SMS)
Email works well in many cases, but it’s not always ideal for time-sensitive enquiries.
For example:
- service businesses
- agencies handling client leads
- urgent support requests
Some modern form backends now deliver submissions to messaging platforms.
These may include:
- WhatsApp notifications
- SMS alerts
- Slack or webhook integrations
This can make it much easier to see new enquiries immediately.
If you're exploring this approach, you might find this comparison useful:
👉 https://web2phone.co.uk/blog/best-form-backend-whatsapp-notifications-2026/
What To Look For In A Form Backend
Not all form services offer the same capabilities.
Here are some features developers often look for:
- spam protection (CAPTCHA or honeypots)
- rate limiting
- webhook integrations
- submission logs
- multiple notification channels
- domain allow-listing
- reliable delivery
These features become more important as a site grows.
A WhatsApp-First Approach
One newer approach is delivering form submissions to messaging apps instead of relying on email alone.
For example, Web2Phone sends form submissions to WhatsApp first, with automatic email fallback if WhatsApp delivery fails.
The current beta plan supports:
- 100 WhatsApp notifications per month
- 100 email notifications per month
- up to 3 forms
This kind of setup can be useful for teams who respond faster to messaging notifications than email.
If you're comparing tools, you can see the differences here:
👉 https://web2phone.co.uk/blog/formspree-vs-web2phone-2026/
FAQ
Can you create an HTML form without a backend?
Yes. Using a form backend service allows you to collect submissions without running your own server.
What is a form endpoint?
A form endpoint is a URL that receives form submissions via POST requests and processes the data.
What is the easiest way to handle forms on static sites?
Most developers use a hosted form backend service. It removes the need to run server-side code.
Are email notifications reliable?
Email works in many cases but can be affected by spam filters or delayed inbox checking. Some teams prefer additional notification channels like messaging apps or webhooks.
Final Thoughts
Handling HTML forms without a backend is much easier today than it was a few years ago.
Developers now have multiple options:
- building a custom backend
- using a hosted form service
- using messaging notifications
- integrating webhooks or automation tools
The best choice depends on your project, your stack, and how quickly you need to respond to submissions.
If you're building static sites or frontend-heavy projects, choosing the right form backend can save a lot of time and complexity.
Top comments (0)