01 / Das Problem
Statische Seiten brauchen nichts. Bis auf das Kontaktformular.
Kundenseiten bauen wir am liebsten statisch. Astro, Jekyll, manchmal reines HTML: Die Seite wird einmal gebaut, liegt als Dateien auf dem Server und braucht danach nichts mehr - keinen Prozess, der laufen muss, kein Update, das man verpassen kann, keine Datenbank, die jemand angreifen könnte. Für eine Firmenwebsite ist das fast immer die richtige Wahl.
Bis zum Kontaktformular. Ein Formular braucht jemanden, der die Eingabe entgegennimmt, prüft und weiterleitet. Und plötzlich steht wegen einer einzigen Seite PHP im Raum, oder ein Node-Prozess, oder ein Mailserver, dessen Reputation gepflegt werden will. Alles, was wir mit der statischen Seite gerade losgeworden sind, kommt für ein <form> zurück.
02 / Die üblichen Auswege
Zu groß oder zu weit weg.
Dienste, die genau das übernehmen, gibt es viele - Formspree, Getform, Basin. Uns hat keiner gepasst, aus zwei Gründen.
Die einen sind zu groß. Formular-Editor, bedingte Logik, Zahlungen, Umfragen, Dashboards mit Konversionsraten - alles, was ein Kontaktformular nicht braucht, und alles, was bezahlt und erklärt werden muss.
Die anderen sitzen außerhalb der EU. Das ist kein Bauchgefühl, sondern Arbeit: Auftragsverarbeitung, Datentransfer, ein Cookie-Banner, weil das Captcha des Anbieters Cookies setzt. Und am Ende erklären wir einem Handwerksbetrieb aus dem Landkreis, warum seine Anfragen in Virginia liegen.
03 / Also selbst gebaut
Ein Endpunkt, ein Job.
Irgendwann haben wir uns deshalb ein eigenes Backend gebaut. Nichts Großes: ein Endpunkt, der Formulardaten annimmt, Felder prüft, Spam aussortiert, den Rest verschlüsselt ablegt und eine Mail an den Kunden schickt. Es lief seitdem hinter unseren Kundenseiten, unauffällig, mit genau einem Job.
Dann stellte sich die Frage, warum eigentlich nur bei uns. Bis dahin fehlten aber ein paar Dinge, die man intern nicht braucht: ein Posteingang, in dem Kunden ihre Einsendungen selbst sehen. Mandanten. Löschfristen, die wirklich löschen. Ein Captcha, das ohne Dritte auskommt. Und - weil wir 2026 haben - eine Schnittstelle für KI-Assistenten.
Das ist Formdall.
04 / Was es heute ist
Ein Attribut. Der Rest passiert bei uns.
Die Integration ist ein Attribut. Ihr Formular bleibt Ihr HTML; nur das action zeigt auf uns:
<form action="https://api.formdall.de/api/v1/f/IHR-KEY" method="POST">
<input name="name" required>
<input name="email" type="email" required>
<textarea name="message"></textarea>
<button>Absenden</button>
</form>
Kein SDK, kein Build-Schritt, kein Plugin. Wenn es POST kann, kann es Formdall - Astro, Hugo, WordPress, die Website von 2009.
Dahinter passiert, was wir für uns selbst gebaut hätten: Einsendungen liegen verschlüsselt auf Servern in Deutschland - DSGVO ist dabei keine Checkbox, sondern die Architektur. IP-Adressen gibt es in der Anwendung nur als täglich rotierenden Hash. Aufbewahrungsfristen enden in einer echten Löschung, nicht in einem deleted_at. Das Captcha ist ein selbst gehostetes Proof-of-Work - keine Cookies, kein Banner. Und wenn jemand nach Art. 15 fragt, was Sie über ihn gespeichert haben: E-Mail-Adresse in den Posteingang tippen, Treffer als CSV ausgeben oder löschen.
Der Teil, auf den wir am meisten stolz sind, ist der neueste: Formdall spricht MCP. Sie sagen Claude oder Cursor „Bau mir ein Kontaktformular“, und der Assistent legt es an, setzt das Feld-Schema, richtet die Benachrichtigung ein und schreibt das Snippet in Ihre Seite. Sie bestätigen einmal im Browser - und entscheiden dabei, ob der KI Assitent Einsendungen lesen darf.
05 / Wo es steht
Live. Und auf dieser Seite im Einsatz.
Formdall ist live - als Alternative zu Formspree & Co. mit Servern in Deutschland. Der kostenlose Plan reicht für die eine Seite, die ein Kontaktformular braucht: drei Formulare, hundert Einsendungen im Monat, keine Kreditkarte. Wer mehr braucht, zahlt ab 4,99 € im Monat - für Menge, nicht für Funktionen. Webhooks, Captcha und MCP sind in jedem Plan drin.
Das Kontaktformular auf dieser Website läuft übrigens darüber. Das war die erste Bedingung, bevor wir es jemand anderem geben.