Skip to Content
GuidesMigrate from Netlify Forms

Migrate from Netlify Forms

Netlify Forms works by detecting netlify attributes during build. Formtorch uses a standard HTTP endpoint instead, which works on any hosting platform.

What changes

Netlify FormsFormtorch
SetupHTML attribute netlify or data-netlify="true"POST to https://formtorch.com/f/YOUR_ID
Spam protectionAkismet / reCAPTCHATorchWarden (automatic)
Honeypot fieldnetlify-honeypot attribute on form_honeypot hidden input
Redirectaction attribute on form_redirect hidden input
File uploadsSupportedSupported (paid plans)
Platform dependencyNetlify onlyAny hosting

Migration steps

Create your forms in Formtorch

Sign in to app.formtorch.com . Create a project, then one form for each Netlify form you’re migrating. Copy the endpoint URLs.

Remove Netlify-specific attributes

Remove the netlify, data-netlify, and netlify-honeypot attributes from your forms:

<!-- Before --> <form name="contact" netlify netlify-honeypot="bot-field" method="POST"> <input name="bot-field" type="hidden" /> ... </form> <!-- After --> <form action="https://formtorch.com/f/YOUR_FORM_ID" method="POST"> <input name="_honeypot" type="text" style="display:none" tabindex="-1" autocomplete="off" /> ... </form>

Add the action attribute and method

Netlify Forms uses the page URL as the form action. Formtorch requires an explicit action pointing to your endpoint:

<form action="https://formtorch.com/f/YOUR_FORM_ID" method="POST"></form>

Add a redirect field

Netlify Forms used the action attribute for the post-submit redirect. In Formtorch, use the hidden _redirect field:

<input type="hidden" name="_redirect" value="https://yoursite.com/thank-you" />

Remove Netlify hidden inputs

Netlify requires a hidden form-name input for AJAX submissions. Remove it:

<!-- Remove this --> <input type="hidden" name="form-name" value="contact" />

Set up email notifications

In your form’s SettingsNotifications, add your email address. Netlify sent notifications to your Netlify account email; Formtorch lets you configure recipients per form.

Export existing Netlify form data

Before you cut over, export your existing Netlify Forms submissions as CSV from the Netlify dashboard. These cannot be migrated to Formtorch automatically.

Test and go live

Send a test submission from the Formtorch dashboard to verify delivery, then deploy your updated forms.

React / Next.js forms on Netlify

If you used Netlify’s client-side form approach with a hidden form-name input and fetch, update it to post directly to Formtorch:

// Before (Netlify AJAX pattern) await fetch("/", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ "form-name": "contact", ...formData }).toString(), }); // After (Formtorch) await fetch("https://formtorch.com/f/YOUR_FORM_ID", { method: "POST", headers: { "X-Requested-With": "XMLHttpRequest" }, body: new FormData(formElement), });

Key differences

Platform independence: Netlify Forms only works when deployed on Netlify. Formtorch works with any hosting: Vercel, Netlify, Cloudflare Pages, GitHub Pages, or a self-hosted server.

Build-time detection: Netlify Forms requires a static HTML form to exist at build time. Formtorch has no build-time requirement. You can generate forms dynamically.

Spam protection: Formtorch’s TorchWarden runs automatically with no configuration. No reCAPTCHA tokens or honeypot wiring needed beyond adding the _honeypot field.

If you’re migrating a site away from Netlify entirely, Formtorch is a good time to make the switch. The endpoint works from any frontend regardless of where it’s hosted.

Learn more

Last updated on