Guides
A free form backend for any website: a Formspree alternative
Point your HTML form's action at a Forms endpoint and collect submissions with no server and no monthly cap. The code and the steps, start to finish.
To collect submissions from a form on a static website for free, make an endpoint in Forms and set your HTML form's action to it. Submissions land in your Forms results, where you can read them and export a CSV. There is no server to run, no script to add and no monthly cap.
Formspree, the best known form backend, allows 50 submissions a month on its free plan, with paid plans from around $10 to $15 a month, as reported in 2026. Here is how to do the same job for free.
Step 1: Make an endpoint
Open Forms and make a form. You have two choices:
- No questions. The endpoint keeps whatever fields your website posts, up to 50 fields of 2,000 characters each. This is the quickest way to back a contact form.
- Questions that match your fields. Give each question the same name as a field in your HTML, such as "name", "email" and "message". Forms then checks the answers: required questions must be filled in, and email fields must look like an email address. Fields that match no question are not saved.
You get a form ID, its endpoint and an admin link. Keep the admin link private. It is how you read the submissions, from any device.
Step 2: Paste the form into your page
Replace FORM_ID with yours:
<form action="https://functions.bounded.sh/apps/cf614aedcf4cdabfa9c45095/api/forms/FORM_ID/responses" method="POST">
<input name="name" placeholder="Your name" required>
<input name="email" type="email" placeholder="Email" required>
<textarea name="message" required></textarea>
<input name="_gotcha" style="display:none" tabindex="-1">
<button type="submit">Send</button>
</form>
That is all. No JavaScript is needed. When someone submits, their browser shows a short thank-you page with a link back to the page they came from.
The hidden _gotcha field is a honeypot. People never see it, but many spam bots fill in every field they find. When _gotcha has a value, Forms answers as if it worked and stores nothing.
Step 3: Read your submissions
Open your admin link. Every submission is there, newest first, with a summary per question if you used questions. Download them all as a CSV file whenever you like.
Optional: submit with JavaScript
To keep visitors on the page and show your own message, send the form with fetch and ask for JSON:
const form = document.querySelector("form");
form.addEventListener("submit", async (event) => {
event.preventDefault();
const res = await fetch(form.action, {
method: "POST",
body: new FormData(form),
headers: { Accept: "application/json" },
});
form.innerHTML = res.ok
? "<p>Thanks, we got your message.</p>"
: "<p>Something went wrong. Please try again.</p>";
});
This works the same in a plain HTML page, a static site generator, or a React or Vue app. For a question with checkboxes, give every checkbox the same name.
What it does not do
Know the limits before you switch:
- No email alerts. Forms does not email you when a submission arrives. Check the results page, or ask your AI assistant to read new responses for you.
- Text fields only. File uploads are not supported.
- No custom redirect. Visitors see Forms' short thank-you page. To show your own message, submit with JavaScript as above.
- A honeypot, not a CAPTCHA. It turns away most bots, but a determined spammer can get through.
Never collect passwords, card numbers or other secrets in a form.
Other free options
- Netlify Forms is built into Netlify hosting, with a free monthly allowance. A natural choice if your site already lives on Netlify.
- FormSubmit and similar services email you each submission, which Forms does not.
- Google Forms can be embedded in a page, though it looks like a Google Form rather than part of your site.
- Formspree is polished, with email notifications and integrations. Its free plan stops at 50 submissions a month, as reported.
If you need a full survey with charts rather than a contact form, Forms does that too. See the best free Typeform alternatives.
Questions
What is a form backend?
A form backend is a service that receives the data when someone submits a form on your website, and stores it for you. It lets a static site, with no server of its own, have a working contact or sign-up form.
Is there a free Formspree alternative with no monthly limit?
Yes. OpenApps Forms gives every form an endpoint. Point your HTML form's action at it and submissions are stored with no monthly cap, no account and no cost. You read them on the results page and can export them as CSV.
Does Forms email me when someone submits?
No. OpenApps Forms does not send email alerts. You read submissions on your form's results page, or an AI assistant can read them through the API with the form's owner key and summarize them for you.
How does Forms stop spam?
OpenApps Forms supports a hidden honeypot field named _gotcha. People never see it, but many bots fill it in. Any submission with a value in that field is answered as if it worked and is not stored.
Can I use it with React, Next.js or a static site generator?
Yes. The OpenApps Forms endpoint accepts plain HTML form posts and JSON. From JavaScript, post a FormData object with the header Accept: application/json to get a JSON answer instead of the thank-you page.