$ data
Forms
Add a form to any page to collect sign-ups, RSVPs, and leads. Every response is saved for you, with spam protection and optional email alerts — nothing to set up.
Forms and collections share one engine
Define a form
- Under Forms, create a form (e.g. “Signups” or “Contact”). It’s submittable the moment it exists.
- Define its fields — each has a key, a label, a type (
text,email,number,select, …), and a required flag. The field keys are thenameattributes your<form>posts. - Add the form to any of your pages and start collecting submissions.
Embed & submit
Point a <form> on any of your pages at the form’s submit endpoint and responses are saved for you automatically:
<form method="POST" action="/__forms/signups">
<input name="email" type="email" required />
<input name="company" tabindex="-1" autocomplete="off" />
<button type="submit">Join</button>
</form>The form posts to /__forms/<form-slug> on your own page. On success the visitor is redirected back with ?submitted=1, so it works even on a plain page with no extra setup.
- A honeypot field (e.g.
companyabove) silently drops bot submissions. - Submissions are rate-limited per IP and capped in size.
- Built-in contact, registration, and waitlist templates are wired up out of the box.
View submissions
Every submission lands as a record. Open the form to browse its submissions, search across searchable fields, and export — or read them from your AI assistant over MCP.
Email notifications & the email pack
A form can email you on each submission. Notification emails are a metered, premium feature:
- Free — 0 included (submissions are still stored; the email is skipped).
- Personal — 500 emails / month
- Team — 2,000 / month
- Pro — 10,000 / month
Need more? On any paid plan, add an email pack: +1,000 emails / month for $5, adjustable quantity, billed as a separate add-on subscription.
Submissions are never dropped for email reasons