send.webforms.toRead the docs →

Comparison

The Netlify Forms alternative for forms that go more than one place

Netlify Forms only works if Netlify is also hosting the site. WebForms works with any host, static or otherwise, and is not bundled into a hosting decision.

Start freeSee pricing

Netlify Forms is a genuinely convenient feature if you already deploy on Netlify: their build system scans your HTML for a form at deploy time, and submissions are handled automatically with no endpoint to configure at all. On current credit-based plans, Netlify states that form handling itself is free and unlimited, bundled into whatever hosting plan you are already paying for.

The catch is the dependency: it only works for sites Netlify builds and deploys. Move your hosting elsewhere, and the form detection and submission handling move with it. There is also no fan-out beyond notification emails, Slack and a couple of other built-in options, no conditional routing, and no cross-provider delivery log.

WebForms is a plain HTTP endpoint that does not care where your site is hosted - Netlify, Vercel, a VPS, or no host at all beyond static files. Email, Slack, Discord, Telegram and webhooks are native destinations, routing rules send a submission to different places by field value, and every delivery attempt is logged.

When to stay with Netlify Forms

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

WebForms vs Netlify Forms

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

CapabilityWebFormsNetlify Forms
SetupPoint form action at your endpoint. Works with any host, or none.Add a netlify attribute to your form. Requires your site to be built and deployed by Netlify.
Host dependencyNone. Works with any hosting provider or a fully static site.Requires Netlify hosting. Form detection runs at Netlify's own build time.
Submission storageStored, searchable, exportable as CSV or JSON.Stored in the Netlify dashboard per site.
Fan-out per submissionEmail, Slack, Discord, Telegram and webhooks from one submission.Email and Slack notifications, plus outgoing webhooks.
Conditional routingRoute on field values to different destinations per rule.Not offered; every submission goes to the same configured notifications.
Delivery logPer-destination status, response and retry history.Submission list in the dashboard; no per-notification delivery log.
Spam filteringHoneypot, Turnstile, rate limits and an AI classifier that learns from your marks.An honeypot field and reCAPTCHA 2 support.
Signed webhooksHMAC-SHA256 with timestamp and a documented verification example.Outgoing webhooks supported; verify signing support in their docs.

Netlify Forms pricing

Read from their pricing page on . Prices in USD.

PlanPriceSubmissions
Free$0Forms are free and unlimited on credit-based plans, per Netlify's own docs; billed against the hosting plan, not separatelyUnlimited
Personal$9 / monthNetlify's paid hosting tier; forms are not metered separately from itUnlimited
Pro$20 / monthNetlify's team hosting tier; forms are not metered separately from itUnlimited

Moving from Netlify Forms

  1. Export your submissions

    Download your submission history from the Netlify dashboard before changing anything.

  2. Create matching forms

    Add one WebForms form per Netlify form and copy each endpoint URL.

  3. Update the form markup

    Remove the netlify and data-netlify attributes, and set the action to your new endpoint. Field names carry over unchanged.

  4. Rebuild destinations, then add routing

    Recreate your email and Slack notifications, then add Discord, Telegram, webhooks or routing rules if you want them.

Want the field-by-field version? Read the complete Netlify Forms 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 Netlify Forms running on the others until you are convinced.

Questions

The markup change is small: remove the netlify attribute and point the action at your new endpoint. Recreating notification destinations in the dashboard is the bulk of the work.

Other comparisons