NewAuto-reply to form submitters

Form backend for static sites
One endpoint. Email + dashboard.

Point any form at FormBeam. Accepted submissions are saved first, then show up in email and your dashboard. Spam filtering and optional auto-replies included. No server of your own.

<form action="https://api.formbeam.io/f/{your-slug}" method="POST">

No credit card. You keep full control of the front-end.

Built for indie and frontend devs

No dropped submissions. Spam filtering. Auto-replies. You keep the front-end.

No data loss

Accepted submissions are saved first. A flaky inbox does not erase the lead.

Instant auto-replies

Send a short confirmation so people know you got their message.

Automatic spam filtering

Spam gets filtered so you don't spend time cleaning the inbox.

Clean, searchable dashboard

Every submission lands in one place you can actually search.

Full visual control

You keep full control of how the form looks on your site.

Zero maintenance

Once it's set up, you don't babysit a form backend.

One form action. No form backend of your own.

Storage, email, spam checks, and a simple dashboard are covered

with-formbeam.html
<form action=https://api.formbeam.io/f/{your-form-slug} >
without-formbeam.js
// Save form data to your database
await db.query(
'INSERT INTO submissions (data, created_at)
VALUES ($1, NOW())',
[formData]
)
// Send email notification to yourself
await resend.emails.send({
from: 'notify@yourapp.com',
to: 'you@example.com',
subject: 'New submission',
html: renderTemplate(data)
})
// Block spam submissions
const isSpam = await checkSpam({
ip: req.ip,
email,
content
})
if (isSpam) return 400
// Search and filter submissions
const results = await db.query(
'SELECT * FROM submissions
WHERE form_id = $1
AND data->>email ILIKE $2',
[formId, `%${query}%`]
)
// Build admin dashboard
app.get('/submissions', async (req, res) => {
const data = await db.query(
'SELECT * FROM submissions
ORDER BY created_at DESC'
)
res.render('dashboard', { data })
})
// Prevent abuse
const limit = rateLimit({
windowMs: 15 * 60 * 1000,
max: 100
})
if (limit(req).isExceeded) {
return 429
}

See FormBeam in Action

Short walkthrough: create a form, point your HTML at the endpoint, check email and the dashboard.

  • Form setup in the dashboard
  • Submission email + stored copy
  • Spam filtering without CAPTCHA by default

Works with

HTML
React
Vue
Next.js
Svelte
SvelteKit
Astro
Hugo
Jekyll
11Eleventy
Carrd
Webflow

Simple, transparent pricing

Monthly submission allowances

Free signup, no credit card. 100 submissions to start.

* Overage: $0.018 per submission beyond your plan limit

Frequently Asked Questions

Everything you need to know about FormBeam.

Ship your contact form without a backend

One form action URL. Accepted submissions are saved first. Email, spam filtering, auto-reply, and a dashboard. Free to start.

No credit card. Upgrade only when you need more volume.