Migrate from Formspree

Swap the action URL and rename a control field or two — your _gotcha honeypot works on Formcrest unchanged.

Before and after

A typical Formspree form:

<form action="https://formspree.io/f/abcdwxyz" method="POST">
  <input type="email" name="email" required />
  <textarea name="message" required></textarea>
  <input type="text" name="_gotcha" style="display:none" />
  <input type="hidden" name="_next" value="https://your-site.com/thanks" />
  <button type="submit">Send</button>
</form>

The same form on Formcrest:

<form action="https://api.formcrest.com/v1/submit/abc123" method="POST">
  <input type="email" name="email" required />
  <textarea name="message" required></textarea>
  <input type="text" name="_gotcha" style="display:none" tabindex="-1" autocomplete="off" />
  <input type="hidden" name="redirect" value="https://your-site.com/thanks" />
  <button type="submit">Send</button>
</form>

Field mapping

FormspreeFormcrest
action="https://formspree.io/f/<id>"action="…/v1/submit/<formId>" — your form's own endpoint from the dashboard
_gotcha honeypotWorks as-is — _gotcha is one of our accepted honeypot field names
_next redirectRename to redirect, or set the success URL once in the form's settings
_subjectConfigure the notification subject in the form's settings (with template variables on Pro)
_replytoNot needed as a field — set Reply-To in the form's notification settings, or rely on the submission's email field
_cc / multiple recipientsAdd verified destination emails to the form — multi-recipient guide

Step by step

  1. Create a Formcrest account, verify the destination email that should receive submissions, and create a form — you'll get the endpoint URL.
  2. Update your HTML as shown above and deploy.
  3. Send a test submission and check it arrives. Your Formspree endpoint keeps working during the transition, so switch pages one at a time with no downtime.

Feature notes

  • Using @formspree/react? Swap to the useFormSubmit hook from @formcrest/sdk/react — the shape is very close. See React & Next.js.
  • AJAX without a library: send Accept: application/json for a JSON response — JavaScript (fetch).
  • Captcha: Formspree uses reCAPTCHA/hCaptcha; Formcrest uses Cloudflare Turnstile — setup guide.
  • File uploads, webhooks, autoresponders, and Slack/Discord/Sheets/Notion delivery are available on Pro — see plans.

General advice (zero-downtime strategy, what to check after the swap) is in the main migration guide. Coming from web3forms instead? See that guide.