Everything quickforms does, grouped by what it is for. Each line links to the page with the details.
Build forms
| Feature | What it does |
|---|---|
| AI form builder | Describe a form in plain English and get a draft with fields, a description, smart rules, a success message and an autoresponder to review. |
| Templates | Ten ready-made starting points, such as contact, quote request, newsletter, event RSVP and job application. |
| Schemas | Thirteen field types, from text and email to checkboxes, hidden and file, stored per form. |
| Conditional questions | Show a question only for certain answers to earlier ones. Questions that aren’t shown aren’t required and their answers aren’t kept. |
| Showing earlier answers | Put {{field}} in a label or help text to show an answer given earlier. |
| Filling in from the link | Add ?name=Lucy to a form’s link to fill in visible and hidden questions. |
| Calculated fields | Totals and scores worked out from earlier answers, and again on the server. |
| Ranking, matrix and signature questions | Put options in order, answer a grid, or draw a signature. |
| Validation | Every field becomes a server-side rule, with 422 errors keyed by field and custom messages. |
| Drafts and publishing | Save changes as a draft, test them in sandbox mode and publish or discard them while live submissions keep the published version. |
| Forms as code | Keep forms in a quickforms.json file and deploy them with the CLI, the GitHub Action or the Netlify build plugin. |
Collect submissions
| Feature | What it does |
|---|---|
| Hosted forms | A themed page at /f/{form} in a classic, steps or compact layout, with light and dark modes, your accent colour, font, corners and logo. |
| Closing a form | Stop taking responses at a submission limit or a set time, with your own message. |
| Personal links | One link per person, with prefilled answers, your own metadata, a use limit and an expiry. Used links say they have already been filled in. |
| Submit endpoint | POST /f/{form} takes HTML posts and JSON from any site, with per-form CORS, redirects and success messages. |
| Embed widget | One script tag renders the form from its schema, or frame the iframe embed page. |
| File uploads | Multipart posts, or pre-signed direct uploads straight to storage. Files are shared through signed, expiring download links. |
| Partial submissions | Save answers as people type, see where they drop off in the completion funnel, and link each partial to its submission. |
| Payments | Take a Stripe payment with your own keys, at a fixed price or a price from an answer, checked server-side before the submission is accepted. |
Deliver
| Feature | What it does |
|---|---|
A notification email to your team and an optional autoresponder with {{field}} placeholders, subject variables and a reply-to field. |
|
| Bring your own keys | Send through your own Resend, Postmark, Mailgun, Amazon SES, SMTP or Mailchimp Transactional account. |
| Routing rules | Send the notification to different people, or redirect to a different page, based on the answers. |
| Double opt-in | Hold every email and webhook until the person confirms their address. |
| Webhooks | Signed JSON for every submission, retried on a backoff schedule, with a log of every attempt and redelivery. |
| Destinations | Send submissions to Slack, Discord, any HTTP endpoint, HubSpot, Attio, Customer.io or Google Sheets, with field mapping, conditions and a preview. |
| Google Sheets | Append a row per submission to a spreadsheet with a service account. |
| Zapier and n8n | REST hook subscriptions and a sample event endpoint, plus a Zapier app in the repo. |
| Exports | Download submissions as CSV, JSON or NDJSON, from the dashboard or the API, with filters. |
Understand traffic
| Feature | What it does |
|---|---|
| Tracking and attribution | Capture UTM parameters, ad click IDs and the referrer with each submission, first and last touch. |
| Tracking script | quickforms-track.js keeps attribution across pages in localStorage, without cookies. |
| Server-side proxy mode | Post from your own server with a team API key that has the proxy ability and pass the visitor’s IP, user agent and country. |
| Analytics | Cookie-free views, unique visitors, starts, submissions, conversion rate and top sources per form. |
Test and protect
| Feature | What it does |
|---|---|
| Sandbox mode | Submissions are validated and stored, nothing is sent, and you see exactly what would have gone out. |
| Honeypots | A main honeypot plus up to five extra ones with realistic names. Bots that fill them in are dropped silently. |
| Cloudflare Turnstile | Require a Turnstile token on live submissions, with your own site key and secret key. |
| Altcha | A proof-of-work challenge served by quickforms itself, with no third-party service. |
| Geo filters | Allow or block submissions by country. |
| Disposable email blocking | Hold submissions from throwaway email domains. |
| Rate limiting | Submissions are limited per form and IP address. |
| AI spam filter | Every submission is classified before anything is delivered. Spam is held for review. |
| Smart rules | Plain-English rules per form, such as “Must be about bike fitting”. Submissions that break them are held too. |
Manage
| Feature | What it does |
|---|---|
| Dashboard | Charts of live, sandbox and spam submissions, filters, setup snippets, test submissions, personal links, destinations, the funnel and the delivery log. |
| REST API | Forms, links, submissions, deliveries, destinations, partials, analytics, exports, hooks and mail providers over /api/v1 with team-scoped tokens. |
| MCP server | The same powers for AI agents, with the same API key. |
| Teams | Forms, mail providers and API keys belong to a team. |
| Cloudflare edge Worker | Scoped, not built: a note on an optional Worker in front of the public endpoints. |