Migrate from Formspree

If you are currently using Formspree, migrating to Formward typically requires changing a single line in your HTML. Formward's special fields use the same names as Formspree's, so most forms work immediately without further changes.

Step 1: Create a form in the dashboard

Log in to Formward and click New form. Set the notification email. Copy the form ID from the settings page.

Step 2: Swap the action URL

Find the line in your HTML that looks like this:

<form action="https://formspree.io/f/<your-id>" method="POST">

Replace it with your Formward endpoint:

<form action="https://forms.formward.eu/f/<formId>" method="POST">

That is the only required change for most forms.

Compatible special fields

Formward recognises the same special field names that Formspree uses, so you do not need to rename any hidden fields:

FieldWorks in Formward?Notes
_redirectYesMust be a relative path or an absolute URL from an allowed origin. Arbitrary external URLs are rejected by an open-redirect guard.
_subjectYesSets the notification email subject
_replytoYesAlso accepted as _reply_to
_gotchaYesHoneypot - same behaviour

AJAX / fetch usage

If you are using fetch() with Accept: application/json, no changes are needed beyond the URL. Formward returns { ok: true, id } on success, the same shape as Formspree's { ok: true }. Your existing error handling will continue to work.

Why switch to Formward?

  • EU data residency: All submission data is stored in Sweden on infrastructure operated by Hostup AB. No data leaves the European Union.
  • GDPR-clean by design: IP addresses are stored as one-way hashes only. Raw IPs are never written to disk.
  • AI features on Pro: Automatic spam scoring, submission summaries, lead scoring, and plain-English routing, all running on EU infrastructure (Mistral, France).
  • Open infrastructure: Authentication runs on your own instance of better-auth. Credentials are not transmitted to third-party identity providers.

Checklist

  1. Create a form in the dashboard and note the form ID.
  2. Replace action="https://formspree.io/f/..." with action="https://forms.formward.eu/f/<formId>".
  3. Add your site's origin to the form's allowed origins list to prevent cross-origin spam.
  4. Submit a test form entry and confirm it appears in the dashboard.
  5. Remove the Formspree integration from your project once confirmed.
Migrate from Formspree to an EU form backend | Formward Docs