Stored, always
Every submission lands in your dashboard the moment it is sent, clean or not. Open it, reply from it, and pull anything back out of quarantine with one click.
// a backend for any form on any site
Point any HTML form at one URL and you are done. Submissions are stored, spam is held where you can see it instead of deleted, clean ones email you, and rules send each one to the right person. When you are ready to sell, the same account runs a shop.
Try it: type in the form and press Send. The right side is your dashboard.
// what you get
No server, no plugin, no library. It works with Squarespace, Wix, WordPress, Webflow, a hand-written HTML file, or a React app. If it can POST, it can use Forms.
Every submission lands in your dashboard the moment it is sent, clean or not. Open it, reply from it, and pull anything back out of quarantine with one click.
Honeypot, Turnstile, rate limits, and a blocklist catch the junk. Catches are held in a tab you can see, so a false positive never costs you a real lead.
Send quotes to sales and complaints to you, by what is in the fields. Formspree charges about $90 a month for this. Here it is on every paid plan.
Resumes, photos, PDFs. Uploads store with the submission on your own storage, with a download link in the email.
Every clean submission can POST as signed JSON to any URL. Zapier, Make, n8n, Slack, Discord, or your own code.
Notifications go to inboxes you have verified, with reply-to set to the sender, so answering is one click.
// examples
Every one of these is plain HTML posting to a Forms endpoint, the same way yours will. They are live to the touch: press the button and the card tells you what would happen. Open the HTML to see how little there is.
The classic. Three fields, spam held before it reaches you, and the reply lands in your email with reply-to already set.
<form action="https://forms.scrolltheory.media/f/your-id" method="POST">
<label>Name <input name="name" type="text"></label>
<label>Email <input name="email" type="email"></label>
<label>Message <textarea name="message"></textarea></label>
<button>Send message</button>
</form>
For service businesses. Ask exactly what you need to price a job, and route lawn care to one inbox and snow removal to another.
<form action="https://forms.scrolltheory.media/f/your-id" method="POST">
<label>Name <input name="name" type="text"></label>
<label>Email <input name="email" type="email"></label>
<label>What do you need? <select name="service"><option>Lawn care</option><option>Landscaping</option><option>Snow removal</option></select></label>
<label>Tell me about the job <textarea name="details"></textarea></label>
<button>Get my quote</button>
</form>
Restaurants, venues, photographers. The request arrives with everything you need to confirm it in one reply.
<form action="https://forms.scrolltheory.media/f/your-id" method="POST">
<label>Date <input name="date" type="date"></label>
<label>Party size <input name="party" type="number"></label>
<label>Name <input name="name" type="text"></label>
<label>Phone <input name="phone" type="tel"></label>
<button>Request a table</button>
</form>
Hiring without the job-board fees. On a paid plan the applicant attaches a resume and it stores with the submission.
<form action="https://forms.scrolltheory.media/f/your-id" method="POST" enctype="multipart/form-data">
<label>Name <input name="name" type="text"></label>
<label>Position <select name="position"><option>Kitchen</option><option>Front of house</option><option>Delivery driver</option></select></label>
<label>Resume <input name="resume" type="file"></label>
<label>Why here? <textarea name="why"></textarea></label>
<button>Apply</button>
</form>
One field. Pipe it to your email list with a webhook, or export the addresses whenever you send.
<form action="https://forms.scrolltheory.media/f/your-id" method="POST">
<label>Email <input name="email" type="email"></label>
<button>Keep me posted</button>
</form>
Headcounts that collect themselves. Watch the yes column grow from your dashboard.
<form action="https://forms.scrolltheory.media/f/your-id" method="POST">
<label>Name <input name="name" type="text"></label>
<label><input type="radio" name="rsvp" value="Yes"> Yes</label>
<label><input type="radio" name="rsvp" value="Can't make it"> Can't make it</label>
<label>Bringing guests <input name="guests" type="number"></label>
<button>RSVP</button>
</form>
A different animal: products with photos, a cart, live stock, card checkout, and an order board. It gets its own editor, its own hosted page, and its own demo.
Write the HTML yourself, or ask any AI to write it and point the form's action at your endpoint. The build a form with AI guide has a prompt that does it in one shot.
// how it works
Set your form's action to your endpoint. Plain HTML, React, anything that POSTs.
Every submission lands in your dashboard. Clean or spam, it is captured, never dropped.
Real submissions email you instantly, with reply-to set to the sender.
Send sales one place, support another, by what is in the message.
// the whole integration
<form action="https://forms.scrolltheory.media/f/your-id" method="POST">
<input name="email" type="email">
<textarea name="message"></textarea>
<button>Send</button>
</form>
Already on Formspree? We honor the same special fields, _replyto, _subject, _next. Moving over is a find-and-replace on the action, not a rebuild.
// when you are ready to sell
Built for people who make things: bakers, printmakers, candle pourers, small-batch anything. Products, a cart, delivery or pickup, card checkout to your own Stripe, and an order board you can run a week from. No store platform, no moving your site.
Products, sizes, photos, and prices in a plain editor. Save, and the order form on your site updates on the next page load.
Take Venmo, Cash App, cash, or checks with no fee. Turn on card payments and the money settles to your own Stripe account.
New, packing, ready, picked up. Discounts, stock counts, delivery by ZIP, sales tax, and a reminder for the cart someone walked away from.
// connectors
Every clean submission can POST as JSON to any URL you set, signed so the receiver can trust it came from you. Card payments settle straight to your own Stripe account.
Verify the X-STF-Signature header and handle the JSON however you like. The docs have the exact payload.
// pricing
Free covers a contact form for good. Forms is every form feature with no credit and no shop. Pro adds the shop with card checkout, and card orders carry a 1% fee. That is the entire price list.
A contact form that keeps every lead
No per-submission fees.
Start freeEvery form feature, no credit, no shop
No per-submission fees.
Start with FormsThe whole shop, on the site you already have
Plus 1% of card orders. Nothing else.
Start with ProA form takes a minute. Free to start, no card required.
Start free