SheetLink Forms vs Static Forms
Static Forms (now at staticforms.dev) is a lean, inexpensive email-first endpoint with one of the widest captcha menus in the category. SheetLink Forms points the pipeline somewhere else entirely: at the spreadsheet, with attribution attached and no monthly meter that pauses your forms.
SheetLink Forms
SheetLink Forms gives every form a permanent endpoint at sheetlinkforms.com/f/your-token and writes accepted submissions directly into a Google Sheet or an Excel Online table - via the Google Sheets API and Microsoft Graph, not a connector hop. Field names matching your column headers map automatically (case and punctuation insensitive), delivery retries at 5 minutes, 30 minutes, and 2 hours with a per-submission log, and a formula-injection guard escapes dangerous leading characters in cells. Screening is quarantine-first: honeypot, per-form and per-IP rate limits, origin allowlist, content heuristics with a strictness dial, timing signal, optional Cloudflare Turnstile - and suspicious submissions wait for one-click review instead of vanishing. The sl.js embed captures UTMs and ad click IDs across pages and attaches them to each row. Free during beta, invite required, no per-submission fees ever. Start with how it works.
Static Forms
Static Forms - which moved from staticforms.xyz to staticforms.dev - is an email-first form endpoint: sign up, get an API key instantly with no credit card, point your form at api.staticforms.dev/submit, and submissions are "delivered to your inbox with spam already filtered". The free plan includes 500 emails per month; Pro at $7.50/month (billed $90/year) raises that to 25,000 with file uploads, AI replies, integrations, and 2 GB of storage; Agency at $16/month (billed $192/year) adds 10 GB and unlimited team members, with a 30-day money-back guarantee on paid plans. Spam protection is a wide menu: built-in screening plus "reCAPTCHA v2 and v3, hCaptcha, Cloudflare Turnstile, or privacy-first Altcha, plus honeypot fields on every plan". One operational detail worth knowing: past your monthly limit, "form submissions will pause until you upgrade". For the price, it is a lot of tool.
Side by side
| SheetLink Forms | Static Forms | |
|---|---|---|
| Spreadsheet delivery | The primary destination, not an add-on: rows append under your header row in a Google Sheet you pick (limited drive.file scope) or an Excel Online table whose columns define the row shape, with automatic header mapping and header seeding on empty sheets. | Email is the destination - "delivered to your inbox" is the pitch on staticforms.dev. Integrations are listed as a Pro-plan feature; a native spreadsheet destination is not described on their public pages. |
| Spam handling | Invisible layers plus review: honeypot, per-form/per-IP rate limits, origin allowlist and CORS, content heuristics with a loose/normal/strict dial, timing signal, optional Turnstile. Suspicious submissions are quarantined for one-click review - never silently dropped. | A genuinely wide menu: built-in screening plus reCAPTCHA v2/v3, hCaptcha, Cloudflare Turnstile, or the privacy-first Altcha, with honeypot fields on every plan, per their site. Offering Altcha is a nice touch few competitors match. |
| Ad attribution and click IDs | Automatic via the embed: utm_* plus gclid, wbraid, gbraid, fbclid, msclkid, persisted in localStorage across the visitor's session and written onto the lead's row in the sheet. | Not a documented feature of the submission flow; hidden fields filled by your own script would work here as anywhere, landing in the notification email. |
| Pricing model | Free during beta (invite required). No per-submission fees, ever - and no pause: the planned paid plan (~$15-19/month) is unmetered, so a traffic spike or bot burst never freezes your forms mid-month. | Free: 500 emails/month. Pro $7.50/month billed yearly (25,000/month); Agency $16/month (30,000/month), per their site. Cheap and clearly laid out - but past the cap, "form submissions will pause until you upgrade", which on a lead form means lost leads until you notice. |
| File uploads | Not supported yet - multipart posts are accepted but file parts are dropped. Attachment forms should stay put. | Static Forms wins here. File uploads are included on paid plans at up to 4.5 MB per file, with 2 GB of storage on Pro and 10 GB on Agency, per their site. |
| Platform webhooks | Dedicated inbound endpoints for Webflow (/w/webflow/token) and Framer (/w/framer/token) - one webhook covers every form on a site, with the form name recorded per row. | Any static site can POST to their submit endpoint; platform-specific inbound webhooks are not described on their public pages. |
| Email notifications | None currently - the row appearing in your sheet is the notification, and quarantined items wait in the dashboard. If you want submissions in your inbox, Static Forms is the right shape and we are not. | Static Forms wins here by design. Inbox delivery is the product, with AI replies available on Pro. |
| Delivery and reliability | Asynchronous worker direct to the Sheets API / Microsoft Graph, retries at 5 min / 30 min / 2 h, a per-submission delivery log in the dashboard, and a formula-injection guard escaping leading = + - @ in cell values. | Submissions ride email to your inbox, which becomes the archive and the search index - simple, and for a low-volume contact form, entirely adequate. |
Choose Static Forms when...
Pick Static Forms for a cheap, capable email-first endpoint: the free 500 emails a month covers most personal and small-business contact forms, Pro at $7.50/month is one of the lowest paid entries in the category, and the captcha menu - including privacy-first Altcha - is broader than most. If the inbox is the destination and you want uploads and auto-replies without spending real money, it is a sensible choice.
Choose SheetLink Forms when...
Pick SheetLink Forms when the destination is a spreadsheet and pausing is unacceptable. Rows land in the exact sheet or Excel table your process runs on, each carrying its UTMs and ad click IDs; screening quarantines instead of discarding; delivery has retries and a log; and there is no monthly meter that stops accepting leads when a campaign performs better than you budgeted. See the live demo writing rows into a public sheet, or join the waitlist.
FAQ
Can I migrate from Static Forms to SheetLink Forms?
Yes, and it is usually a one-line change. Point your form at your SheetLink endpoint:
<form action="https://sheetlinkforms.com/f/your-token" method="POST"> <input name="_slhp" tabindex="-1" autocomplete="off" style="position:absolute;left:-9999px"></form>
Keep your existing inputs exactly as they are. Field names that match your sheet's column headers map automatically - the matching is case and punctuation insensitive, so "Email", "email", and "E-mail" all land in the same column - and explicit per-field mapping is available for anything that does not line up. Your Static Forms API key field is simply ignored and can be removed. Full request and response details are in the developer docs.
Is Static Forms still at staticforms.xyz?
The old staticforms.xyz address now redirects permanently to staticforms.dev, and the current product is the one described there: instant API key on signup, inbox delivery, a free tier of 500 emails/month, and paid Pro and Agency plans. Everything cited on this page comes from the current staticforms.dev site.
What does "submissions pause until you upgrade" mean in practice?
Per their site, once you exceed your plan's monthly email limit, form submissions pause until you upgrade. On a contact form that is a minor annoyance; on a lead-generation form mid-campaign, it means the form stops capturing exactly when it is working best. SheetLink's model avoids the cliff entirely: no per-submission metering, so there is no limit to hit. During beta the whole product is free (invite required).
Static Forms offers five captcha options - do I lose that flexibility?
You lose the menu, not the protection. SheetLink's default screening is invisible - honeypot, rate limits, origin allowlist, content heuristics with a strictness dial, and the embed's timing signal - with Cloudflare Turnstile available when you want an explicit challenge. The design bet is different: instead of choosing which gate visitors must pass, suspicious submissions go to a quarantine queue where one click approves or discards them, so no legitimate lead dies to a filter's judgment call. Details in the docs.
Comparison facts reference Static Forms's public documentation and pricing pages and were checked at publish time; tell us if something is out of date.