Guide
Jekyll contact form (no backend needed)
Jekyll builds static HTML, which means a Jekyll contact form is just a plain HTML form in a Liquid template. This is the rare contact-form solution that works on GitHub Pages out of the box, because GitHub's Jekyll allowlist doesn't matter when your backend is somewhere else.
The snippet
---
# _pages/contact.html
layout: default
permalink: /contact/
---
<form action="https://formhook.app/f/YOUR_API_KEY" method="POST">
<input type="email" name="email" placeholder="Email" required />
<textarea name="message" placeholder="Message" required></textarea>
<input type="text" name="_gotcha" tabindex="-1" autocomplete="off" hidden />
<input type="hidden" name="_redirect" value="{{ '/thanks' | relative_url }}" />
<button type="submit">Send</button>
</form>How it works
The snippet uses Jekyll's front matter to declare the page's permalink and layout. The form itself is plain HTML — Jekyll only touches the {{ '/thanks' | relative_url }} bit, which expands at build time to the right URL with your baseurl applied. The form POSTs to Formhook from the visitor's browser, so GitHub Pages' build sandbox has nothing to do with it.
What happens next
- Submission lands in your Formhook dashboard within a second.
- Push notification fires on every device you've enabled it on.
- Reply directly from the dashboard (Pro and above) — particularly handy for GitHub Pages sites that have no other email-out mechanism.
Ship your Jekyll contact form today.
Sign up free, create a form, paste the API key. Five minutes.
Start freeFree tier: 5 forms · 250 submissions/month · No credit card.
Jekyll contact form — FAQ
- Does this work on GitHub Pages with the default Jekyll build?
- Yes. Because Formhook is the backend, GitHub's plugin allowlist doesn't matter — you just need plain HTML in the built output.
- Can I have multiple forms (e.g. contact and newsletter) on the same Jekyll site?
- Yes. Create one Formhook form per use case, paste each form's action into the right template. The Free tier covers five forms.
- How do I redirect to a thank-you page on a GitHub Pages site?
- Include a hidden _redirect input. Use Jekyll's relative_url filter on the value so it works with your baseurl. The target URL must be on your form's allowed-origins list.