How to add a contact form to a static site on GitHub Pages or Cloudflare Pages
GitHub Pages and Cloudflare Pages can both publish a static HTML site. Add a contact form to such a site by posting plain HTML to a Lamofel endpoint -- the form posts straight to Lamofel.
- Generate the form. Use the free contact form generator at lamofel.com/tools: pick the fields, and it gives you ready-to-paste HTML. No account is needed to generate a form.
- Paste the form into a page of your site, for example a file named contact.html in the folder you publish. Example (the generator's output for name, email and message fields; the form action ends in the placeholder CLAIM_YOUR_ENDPOINT until you claim an endpoint):
<form action="https://lamofel.com/f/CLAIM_YOUR_ENDPOINT" method="POST">
<label for="field-name">Name</label>
<input id="field-name" type="text" name="name" required>
<label for="field-email">Email</label>
<input id="field-email" type="email" name="email" required>
<label for="field-message">Message</label>
<textarea id="field-message" name="message" rows="5" required></textarea>
<input type="text" name="_gotcha" tabindex="-1" autocomplete="off" hidden>
<button type="submit">Send message</button>
</form>
Keep the hidden _gotcha field as generated: it is the spam trap. A filled-in _gotcha field marks the post as spam.
- Claim your endpoint. On the generator's result page, enter the email address where submissions should arrive and press "Claim my endpoint". Your account, the form and the live endpoint are created right away; the claim result gives you the form HTML with your real endpoint in the form action -- paste that version in place of the placeholder. Delivery starts after you confirm that address from the email Lamofel sends you; submissions sent before you confirm are stored but not emailed. The confirmation link works for 7 days (see lamofel.com/privacy).
- Publish the page.
- On GitHub Pages: commit and push the file to your repository. GitHub Pages publishes any static files you push to your repository, and it does not support server-side languages such as PHP, Ruby or Python. GitHub says changes can take up to 10 minutes to appear after a push.
- On Cloudflare Pages: push the file to your Git repository (Pages supports GitHub and GitLab). If you create the project by importing an existing Git repository, Cloudflare's static HTML guide says that if you are not using a preset and do not need to build your site, you use exit 0 as the build command; the build output directory is where your site's content lives. After that, each push to the repository deploys automatically.
- Send a test submission from the live page and check that it arrives in your confirmed inbox.
Limits
- Submissions are stored for 30 days, then deleted.
- The Free plan includes 100 messages a month and a "Powered by" footer on the thanks page.
- Paid plans (Starter and Pro) are available on lamofel.com/plans.
- Support is by email, with a reply within 2 business days (India time, Monday to Friday).