Blog
So fügen Sie GitHub Pages ein Kontaktformular hinzu
· 3 Min. Lesezeit
GitHub Pages liefert nur statische Dateien aus - kein PHP, kein Server-Code, keine Möglichkeit, ein Formular-POST zu empfangen. Ein Kontaktformular braucht also einen externen Endpunkt, an den es senden kann. Hier sind die drei echten Optionen - und die Version, die eine Minute dauert.
Option 1: ein Formular-Backend (empfohlen)
Richten Sie die action Ihres Formulars auf einen gehosteten Formular-Endpunkt:
<form action="https://formhook.app/f/fh_your-key" method="POST">
<label>Email <input type="email" name="email" required></label>
<label>Message <textarea name="message" required></textarea></label>
<button type="submit">Send</button>
</form>Committen, pushen, fertig. Einsendungen landen in einem Dashboard und melden sich per Push-Benachrichtigung auf Ihrem Handy. Spam wird durch einen Honeypot und Rate-Limits herausgefiltert, bevor er Sie überhaupt erreicht. Das funktioniert identisch für einfache HTML-Repos und Jekyll-Seiten (der native Generator von GitHub Pages - siehe die Jekyll-Anleitung für ein themenfähiges Include, oder die einfache HTML-Anleitung).
Vorteile: ein Attribut, kein JavaScript nötig, Spam wird gehandhabt, Einsendungen werden gespeichert.
Nachteile: es ist ein Drittanbieter-Dienst - prüfen Sie also die Limits der kostenlosen Stufe und die Aufbewahrungsrichtlinie des Anbieters, für den Sie sich entscheiden. Formhooks kostenlose Stufe speichert Einsendungen für immer.
Option 2: ein mailto:-Link
<a href="mailto:you@example.com">Email me</a>Ehrlich, aber schwach: Es setzt voraus, dass der Besucher einen konfigurierten Mail-Client hat (auf dem Desktop zunehmend nicht der Fall), legt Ihre Adresse für Scraper offen, bietet keinerlei Spam-Schutz und sagt Ihnen nichts über die Abbruchrate. In Ordnung für eine Hobby-README-Seite; teuer für alles, bei dem Anfragen bares Geld bedeuten. (Mehr zu diesem Kompromiss in mailto vs. Kontaktformular.)
Option 3: eine serverlose Funktion an anderer Stelle
Sie können die Seite auf GitHub Pages belassen und das POST mit einem Cloudflare Worker oder Ähnlichem empfangen. Das funktioniert - aber jetzt schreiben und warten Sie den Empfänger selbst: Validierung, Spam-Filterung, Speicherung, E-Mail-Zustellung und CORS. Sie haben genau das Backend wieder eingeführt, das GitHub Pages Ihnen zu vermeiden erlaubte. Vertretbar, wenn Sie daran Freude haben; unnötig, wenn nicht.
Das AJAX-Upgrade (optional)
Das einfache HTML-Formular verlässt beim Absenden die Seite. Um auf der Seite zu bleiben:
<script>
document.querySelector("form").addEventListener("submit", async (e) => {
e.preventDefault();
const res = await fetch(e.target.action, {
method: "POST",
body: new FormData(e.target),
headers: { Accept: "application/json" },
});
e.target.outerHTML = res.ok
? "<p>Thanks - message sent.</p>"
: "<p>Something went wrong. Please email us directly.</p>";
});
</script>Kein Build-Schritt, keine Abhängigkeiten - funktioniert in einem reinen GitHub-Pages-Repo.
Hinweis zu benutzerdefinierten Domains
Wenn Ihre Pages-Seite auf einer eigenen Domain läuft, stellen Sie sicher, dass die Pro-Formular-Einstellungen Ihres Formular-Dienstes (etwa eine CORS-Allowlist) diese Domain enthalten, nicht nur username.github.io. Bei Formhook ist das ein einzelnes Feld in den Formular-Einstellungen.
Das ist die ganze Geschichte: GitHub Pages kümmert sich um Ihre Seite, ein Formular-Endpunkt übernimmt die eine Sache, die es nicht kann. Kostenlos starten - und das Formular ist live, bevor Ihr nächster git push fertig ist.
Ein funktionierendes Formular in einer Zeile
In der EU gehostet, Einsendungen für immer aufbewahrt, Push-Benachrichtigungen in jeder Stufe.
Kostenlos startenKeine Kreditkarte · Dokumentation lesen
Weiterlesen
- Was ist ein Formular-Backend? (Und wann Sie eines brauchen)Ein Formular-Backend empfängt, speichert und leitet Ihre Formular-Einsendungen weiter - ohne eigenen Server. So funktionieren sie, wann Sie eines brauchen.
- Mailto-Links vs. Kontaktformulare: Was verliert weniger Leads?Mailto-Links versagen lautlos ohne E-Mail-Programm und legen Ihre Adresse für Spam-Bots offen. Wann ein Mailto genügt, wann sich ein Formular auszahlt.
- Datei-Uploads auf einer statischen Website: Ihre echten OptionenStatisches Hosting kann keine Dateien empfangen - Ihre Formulare aber schon. Wie Multipart-Uploads funktionieren, plus Limits und DSGVO-Speicherung.