How to add a contact form to a static site (GitHub Pages, Netlify, Vercel, Neocities)
The short answer
Static hosts like GitHub Pages, Netlify, Vercel and Neocities only serve files — they can't receive a form submission or send email. Paste the wwwform embed snippet into your page and the form works on any of them, delivering every response to your inbox.
title: How to add a contact form to a static site (GitHub Pages, Netlify, Vercel, Neocities) description: Static hosts can't run server code, so a contact form has nowhere to send submissions. Here's the one snippet that adds a working, emailing form to any static site. date: 2026-06-20 author: wwwform tags: [static-site, contact-form, no-backend] hero: one-line tldr: Static hosts like GitHub Pages, Netlify, Vercel and Neocities only serve files — they can't receive a form submission or send email. Paste the wwwform embed snippet into your page and the form works on any of them, delivering every response to your inbox. faq:
- q: Why won't a contact form work on GitHub Pages or Neocities? a: Those hosts only serve static files — they never run server code, so there's nothing to catch a submission or send an email. You need an external form handler. wwwform is that handler, added with one line.
- q: Does the same snippet work on Netlify and Vercel too? a: Yes. The snippet is just HTML plus a script tag, so it works identically on GitHub Pages, Netlify, Vercel, Neocities, S3, Cloudflare Pages, or any other static host — no per-platform setup.
- q: Do I have to redeploy or configure my host? a: No. You paste the snippet into your page's HTML and deploy as usual. There are no environment variables, functions, or server settings to configure.
You built a site with a static site generator or a plain HTML template, pushed it to GitHub Pages, Netlify, Vercel, or Neocities, and it looks great. Then you test the contact form: you submit it and… nothing. No email, no error, no record.
This catches almost everyone who ships a static site, and it's not a misconfiguration. It's the nature of static hosting.
Why static hosts can't handle forms
A static host does exactly one thing: serve files — HTML, CSS, JavaScript, images. It deliberately doesn't run server code. That's what makes it fast, cheap, and secure.
But receiving a form submission is server work. Something has to catch the POST, store the data, and send you an email through a provider using secret credentials. A host that only serves files has nowhere to run that step — so the form renders perfectly and then has nowhere to send what people type.
Platform-specific form features exist (Netlify Forms, for example), but they lock you to one host, add their own limits, and don't help on GitHub Pages or Neocities at all.
The fix: one snippet that works everywhere
Point the form at a backend that already exists. Build your form once in wwwform, then paste a single snippet into your page:
<div id="wwwform-k_yourkey"></div>
<script src="https://cdn.wwwform.com/f/embed.js" data-wwwform="k_yourkey" async></script>
That's the entire integration. The form renders where you drop the snippet, every submission lands in your dashboard, and you get an email each time someone fills it in.
Same line on every static host
Because it's just HTML and a script tag, the snippet behaves identically no matter where you deploy:
- GitHub Pages — paste it into your page or Jekyll layout and push.
- Netlify / Vercel / Cloudflare Pages — drop it into your template; no functions or environment variables needed.
- Neocities — paste it straight into your HTML in the editor.
- S3 / any file host — the same line works, even from a file opened locally.
There's no framework to install and nothing to configure per platform. One line, and your static site finally has a contact form that actually reaches you.
Frequently asked
Why won't a contact form work on GitHub Pages or Neocities?
Those hosts only serve static files — they never run server code, so there's nothing to catch a submission or send an email. You need an external form handler. wwwform is that handler, added with one line.
Does the same snippet work on Netlify and Vercel too?
Yes. The snippet is just HTML plus a script tag, so it works identically on GitHub Pages, Netlify, Vercel, Neocities, S3, Cloudflare Pages, or any other static host — no per-platform setup.
Do I have to redeploy or configure my host?
No. You paste the snippet into your page's HTML and deploy as usual. There are no environment variables, functions, or server settings to configure.
Make your form actually work
Build a form, paste one line, and start collecting submissions. Free for your first 100 a month — no credit card.