3 Ways Developers Handle HTML Forms Without a Backend

Leader posted Originally published at web2phone.co.uk 3 min read

Static websites are everywhere now — portfolios, landing pages, documentation sites, and small SaaS marketing pages.

But they all run into the same problem:

How do you handle a contact form if there is no backend?

Normally a form submits data to a server, but static sites don't have one.

In this article we'll look at three common ways developers handle HTML forms without running their own backend.


Why Forms Normally Need a Backend

HTML forms send data using an HTTP request, usually a POST.

A typical form looks like this:

 <form action="/contact" method="POST">
  <input type="text" name="name">
  <input type="email" name="email">
  <textarea name="message"></textarea>
  <button type="submit">Send</button>
 </form>

When the user submits the form, the browser sends the data to the URL defined in the action.

Normally that endpoint is handled by a backend such as:

  • Node / Express
  • Python (Flask or Django)
  • PHP
  • Ruby on Rails

The server then processes the submission by:

  • validating the data
  • sending email notifications
  • storing submissions
  • triggering webhooks or automations

Without a server endpoint, the browser has nowhere to send the form data.


Option 1 — Build Your Own Form Backend

If you're comfortable with backend development, you can create your own endpoint.

Example using Express.js:

app.post('/contact', (req, res) => {
  const { name, email, message } = req.body

  // validate input
  // send email
  // store submission

  res.json({ success: true })
})

Example using Flask:

@app.route('/contact', methods=['POST'])
def contact():
    data = request.form
    # process submission

Pros

  • full control
  • fully customizable
  • easy to integrate with your own database

Cons

  • requires hosting a backend
  • you must manage spam protection
  • email delivery can be tricky
  • more maintenance

For many small sites, this can be overkill.


Option 2 — Use a Form Backend Service

This is the most common approach for static sites.

Instead of building your own server, you send form submissions to a hosted endpoint.

Some popular options include:

  • Formspree
  • Basin
  • Getform
  • Formkeep

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

Pros

  • extremely easy to set up
  • no backend required
  • good for static sites

Cons

  • usage limits on free plans
  • usually email-only notifications
  • less flexibility than a custom backend

Option 3 — Messaging Notifications (WhatsApp / SMS)

One limitation of email-based forms is slow response time.

For some use cases — especially leads or support requests — email notifications can easily be missed.

Some newer form backends now deliver submissions to messaging platforms instead.

Examples include:

  • WhatsApp alerts
  • SMS notifications
  • Slack or webhook integrations

This makes it much easier to see enquiries immediately, especially on mobile.

For example, some tools send the form submission to WhatsApp first, with email used as a backup if messaging delivery fails.

If you're exploring this approach, here's a comparison of tools that support messaging notifications:

https://web2phone.co.uk/blog/best-form-backend-whatsapp-notifications-2026/


Quick Comparison

Approach Difficulty Best For
Build your own backend High Full-stack applications
Form backend service Low Static websites
Messaging notifications Low Time-sensitive enquiries

What Developers Usually Look For

When choosing a form backend, developers often care about:

  • spam protection
  • rate limiting
  • webhooks
  • submission logs
  • domain allow-listing
  • multiple notification channels

These features become more important as a project grows.


Final Thoughts

Handling forms without a backend is much easier today than it used to be.

Developers now have several options:

  • building their own backend
  • using hosted form services
  • sending notifications to messaging platforms

For most static sites, a hosted form backend is the fastest and simplest solution.

The best option depends on your stack, your project's complexity, and how quickly you need to respond to incoming submissions.

If you're interested in messaging-based form notifications, I also wrote a deeper comparison here:
https://web2phone.co.uk/blog/formspree-vs-web2phone-2026/

1 Comment

1 vote

More Posts

How I Built a React Portfolio in 7 Days That Landed ₹1.2L in Freelance Work

Dharanidharan - Feb 9

I’m a Senior Dev and I’ve Forgotten How to Think Without a Prompt

Karol Modelskiverified - Mar 19

5 Web Dev Pitfalls That Are Silently Killing Your Projects (With Real Fixes)

Dharanidharan - Mar 3

TypeScript Complexity Has Finally Reached the Point of Total Absurdity

Karol Modelskiverified - Apr 23

Sovereign Intelligence: The Complete 25,000 Word Blueprint (Download)

Pocket Portfolioverified - Apr 1
chevron_left

Related Jobs

View all jobs →

Commenters (This Week)

3 comments
1 comment
1 comment

Contribute meaningful comments to climb the leaderboard and earn badges!