Skip to main content
Wenn du bereits ein funktionierendes, Formspree-gestütztes Formular hast, ist der Umzug zu Formpaste größtenteils eine Zwei-Zeilen-Änderung: eine andere action-URL und ein verstecktes Feld anstelle der Endpunkt-ID, die in die URL eingebacken ist. Diese Anleitung deckt den eigentlichen Austausch sowie die paar Verhaltensunterschiede ab, die es wert sind, vor dem Umschalten zu kennen, damit nichts stillschweigend kaputtgeht.

Der Kernaustausch

Ein typisches Formspree-Formular postet direkt an einen Endpunkt mit deiner Formular-ID eingebettet in der URL:
Das Formpaste-Äquivalent postet an einen einzigen, gemeinsam genutzten Endpunkt, /submit, und identifiziert dein Formular stattdessen über ein verstecktes access_key-Feld im Body, nicht über die URL:
Zwei Änderungen, sonst nichts: die action-URL und ein neues verstecktes access_key-Input. Jedes andere Feld, dein email, message oder welche benutzerdefinierten Felder dein Formular auch schon hat, behält seinen Namen und funktioniert unverändert weiter, da keiner der beiden Dienste diese Namen reserviert. Hol dir deinen access_key (fp_…), indem du ein Formular im Dashboard erstellst (oder einen Agenten bittest, das über das MCP-Tool create_form zu erledigen), siehe Dein erstes Formular, falls du bei null anfängst.

Falls du Formsprees AJAX-/Fetch-Integration nutzt

Das Muster hat dieselbe Form, zeigt nur auf eine andere URL und trägt access_key im Body statt im Endpunktpfad:
Die Erfolgsantwort von Formpaste ist ein 200 mit {"success": true, "message": "Submission received.", "id": "sub_..."}, prüfe res.ok oder success genauso, wie du zuvor die Antwort von Formspree geprüft hättest.

Den Rest deiner Einrichtung übertragen

Unterschiede, die du vor dem Wechsel kennen solltest

Keine Spam-Rätsel. Falls in dein Formspree-Formular reCAPTCHA oder hCaptcha eingebunden war, entferne es einfach, such nicht nach einem Äquivalent zum Konfigurieren. Formpaste verlässt sich vollständig auf serverseitige Heuristiken (Honeypot, Timing, Link-Dichte, Rate, Wegwerf-E-Mail), die deinem Besucher niemals ein Rätsel zeigen. Falls du für Formspree ein Honeypot-Feld hattest, benenne es in botcheck um, das ist genau der Name, den Formpaste prüft, und verstecke es mit CSS (display:none), nicht mit type="hidden", damit einfache Bots, die versteckte Inputs überspringen, trotzdem darauf hereinfallen. Siehe Spam verhindern. Verdächtige Einsendungen werden unter Quarantäne gestellt, nicht stillschweigend verworfen oder blockiert. Eine Einsendung, die als Spam bewertet wird, landet trotzdem irgendwo, wo du sie sehen kannst, im Spam-Tab des Dashboards, statt zu verschwinden. Auf Free ist diese Ansicht nur lesbar; ein False Positive erneut zuzustellen (“retten”) ist eine Pro-Aktion. Falls dein Formspree-Spamfilter Einsendungen stillschweigend verworfen hat, plane Zeit ein, um nach der Migration gelegentlich den Quarantäne-Tab zu prüfen, falls etwas Legitimes einen Anstoß braucht. Keine REST-API für Formulare oder Einsendungen. Formpaste hat keine allgemeine REST-API zum Erstellen von Formularen oder Auflisten von Einsendungen. Formulare werden im Dashboard oder über das MCP-Tool create_form erstellt; Einsendungen werden über das Dashboard, CSV-Export oder das MCP-Tool list_submissions gelesen, siehe Einsendungen abrufen, falls du bisher etwas gegen die API-Oberfläche von Formspree skriptet hast. Ein MCP-Server, falls du das mit einem Agenten verdrahtest. Falls du ein Formular mit Hilfe von Claude Code, Cursor oder einem anderen MCP-sprechenden Agenten migrierst, kann dieser das Formular erstellen und dir direkt einen fertig verdrahteten Snippet zurückgeben, siehe MCP-Server und die Cookbook-Prompts. Das ist kein Formspree-Äquivalent; es ist neue Möglichkeiten, die Formpaste bietet und Formspree nicht. Die Tarife sind einfacher. Formpaste hat genau zwei Tarife, Free und Pro (vier Einsendungs-Kontingent-Stufen innerhalb von Pro), statt Formsprees mehrstufiger Struktur. Siehe Pro-Tarif, falls du prüfst, ob deine aktuelle Nutzung in Frees 250 Einsendungen/Monat passt.

Nach dem Wechsel

  1. Aktualisiere die action-URL und füge access_key bei jedem Formular hinzu, das du migrierst.
  2. Verifiziere die Ziel-E-Mail jedes Formulars (einmaliges OTP pro Adresse), siehe Dein erstes Formular.
  3. Benenne jedes Honeypot-Feld in botcheck um und bestätige, dass es mit CSS versteckt ist.
  4. Entferne jedes CAPTCHA-Widget/-Skript, es wird nicht gebraucht und Formpaste liest es ohnehin nicht.
  5. Setze die Domain-Zulassungsliste, sobald du bestätigt hast, dass Einsendungen ankommen, damit das Formular nicht auf unbestimmte Zeit für jede Origin offen bleibt.
  6. Sende einen echten Test ab und bestätige, dass er im Posteingang des Dashboards und in deiner E-Mail ankommt.

Dein erstes Formular

Vollständige Anleitung zum Erstellen eines Formulars und zum Verifizieren seiner Zieladresse.

Framework-Snippets

Fertig verdrahtete Beispiele für HTML, React, Next.js, Astro, Vue und Svelte.

Spam verhindern

Wie die Filterung funktioniert.

Einsendungen abrufen

Dashboard, CSV-Export und das MCP-Tool, keine REST-API.