send.webforms.toRead the docs →

Hosting and deploy platforms

Add a contact form to GitHub Pages

GitHub Pages serves static files and runs nothing else, which is why contact pages there usually degrade into a mailto: link that opens an empty mail client and loses most visitors. The fix is a form whose action points somewhere that can receive it. Works with Jekyll, with any static generator, or with hand-written HTML.

Get an endpointRead the docs

Setup

  1. Copy your endpoint

    Create a form in the dashboard.

  2. Add the form to your page

    Plain HTML, or a Jekyll include if your Pages site uses Jekyll.

  3. Commit and push

    Pages rebuilds and the form works immediately.

GitHub Pages examples

Swap in your own endpoint and these run as-is.

contact.html
<form action="https://send.webforms.to/wft_your_key" method="POST">
  <label for="name">Name</label>
  <input type="text" id="name" name="name" required>

  <label for="email">Email</label>
  <input type="email" id="email" name="email" required>

  <label for="message">Message</label>
  <textarea id="message" name="message" rows="5" required></textarea>

  <input type="hidden" name="_next"
         value="https://yourname.github.io/thanks.html">
  <input type="text" name="_gotcha" tabindex="-1" autocomplete="off"
         style="position:absolute;left:-9999px" aria-hidden="true">

  <button type="submit">Send</button>
</form>

Worth knowing

GitHub Pages form FAQ

Not on its own - it serves static files and runs no server-side code. Pointing the form's action at an external endpoint works because the browser does the POST, not GitHub.

Ready to wire up your GitHub Pages form?

Free for 300 submissions a month. Endpoint in under a minute, no card required.

Start free