Static hosts don't run server code, so a plain contact form has nowhere to send data. FormBeam is a form endpoint you point at: submissions show up in email and in a dashboard.
I built it for my own static sites so I wouldn't spin up a server every time I needed a contact form. Free plan is 100 submissions/month.
Honest tradeoffs, not a slam dunk table.
| Option | Good for | Downsides |
|---|---|---|
| Google Forms | Zero setup, free | Iframe / Google look, weak fit if you want your own UI |
| Roll your own | Full control | Email, spam, storage, and uptime become your problem |
| Formspree / Basin / similar | Drop-in endpoint | Pricing and features vary; check limits before you depend on them |
| FormBeam | Your HTML, email + dashboard, spam honeypot, optional auto-reply | No Zapier/Sheets/Slack. Signed webhooks yes. Email destinations and dashboard are the core loop. |
method="POST" and FormData (not a JSON body).<form action="https://api.formbeam.io/f/your-form-slug" method="POST"><label for="name">Name</label><input type="text" id="name" name="name" required /><label for="email">Email</label><input type="email" id="email" name="email" required /><label for="message">Message</label><textarea id="message" name="message" required></textarea><!-- bots often fill this; leave it empty and hide with CSS --><input type="text" name="honeypot" tabindex="-1" autocomplete="off" /><button type="submit">Send</button></form>
email or _email field) and restrict which domains can post.Docs: email configuration, spam protection.
If nothing arrives, check the form slug, allowed domains, and that you're sending multipart form data.
Not included yet: Google Sheets sync, or native Slack/Discord routing. If you need those now, POST a signed webhook into your own job, or use another tool.
Full table: /pricing
Yes, if the page can render a normal HTML form (or POST FormData with fetch). For Next.js static export, you cannot use API routes on that deploy; use FormBeam (or similar) as the external action.
Yes. FormBeam is only the backend. There is no required iframe or FormBeam branding on your form.
POST FormData to the same endpoint. Do not send a JSON body.