send.webforms.toRead the docs →

Comparison

The Formspree alternative for forms that go more than one place

Formspree is the established option. WebForms is the leaner one, built around fan-out and a visible delivery log.

Start freeSee pricing

Formspree has been doing hosted form backends for a long time and it shows: a large plugin catalogue, a CLI, a React library and a mature dashboard. If you need submissions pushed into Salesforce, Zendesk or HubSpot with an off-the-shelf integration, that catalogue is the strongest argument for staying, and this page is not going to pretend otherwise.

WebForms is a smaller surface aimed at a narrower job: take a submission, filter it, store it, and get it to the places your team actually watches. Email, Slack, Discord, Telegram and signed webhooks are first-class, and one submission reaches all of them.

The part people notice first is the delivery log. Every destination gets its own record for every submission, with the status, the response and the retry history. When someone says a notification never arrived, that is a question with an answer rather than a shrug.

When to stay with Formspree

Switching has a real cost. These are the cases where we would not bother.

WebForms vs Formspree

Capability by capability, then their published prices. Anything we quote for Formspree was read off their own pricing page on the date shown, but prices change - check their pricing directly before deciding.

CapabilityWebFormsFormspree
SetupPoint form action at your endpoint. Static sites included.Same model: point the form at their endpoint.
Submission storageStored, searchable, exportable as CSV or JSON.Stored, searchable, exportable.
Fan-out per submissionEmail, Slack, Discord, Telegram and webhooks simultaneously.Plugins per form, plus a large third-party catalogue.
Delivery logPer-destination status, response body and retry history.Submission history; per-destination attempt detail is more limited.
Routing rulesRoute by field value to different destinations.Form rules available on their plans.
Spam filteringHoneypot, Turnstile, rate limits and an AI classifier trained by your own spam marks.Honeypot, reCAPTCHA, hCaptcha, Turnstile and their own filtering.
Signed webhooksHMAC-SHA256 with timestamp, verified example in the docs.Signature verification supported.
CRM and helpdesk pluginsVia webhook or an automation platform. No native adapters yet.Native plugins for many CRMs and helpdesks.
Payments in a formNot supported.Stripe plugin available.
Self-serve API for submissionsRead-only Submissions API with scoped keys.Forms API available.

Formspree pricing

Read from their pricing page on . Prices in USD.

PlanPriceSubmissions
Free$0Testing and development50 / month
Personal$15 / month$10 / month billed yearly200 / month
Professional$30 / month$20 / month billed yearly2,000 / month
Business$90 / month$60 / month billed yearly20,000 / month

Moving from Formspree

  1. Export what you have

    Export your existing submissions to CSV from Formspree first. Do this before cancelling anything - it is the one step that is awkward to undo.

  2. Create the equivalent form

    Add a form in WebForms and copy the endpoint. If you used several Formspree forms, make one here per form so the submissions stay separated the same way.

  3. Point the action at us

    Change the form action URL. AJAX submissions work the same way: POST the FormData or JSON and read the JSON response. Field names need no changes.

  4. Recreate destinations and rules

    Add your email recipients, then any Slack, Discord, Telegram or webhook destinations. Rebuild form rules as routing rules if you had them.

  5. Run both for a week

    Leave the Formspree form live on a staging page while the real one points here. Compare the delivery log against your inbox before you cancel.

Want the field-by-field version? Read the complete Formspree migration guide

Try it without deciding anything

The free plan includes 300 submissions a month, unlimited forms, email delivery, stored submissions and spam filtering, with no card required and no expiry. Point one form at it and keep Formspree running on the others until you are convinced.

Questions

The form markup change is a one-line edit to the action URL, since both services take a plain HTML POST and neither requires specific field names. The real work is recreating destinations and any form rules, which is dashboard configuration rather than code.

Other comparisons