Eleventy
Contact form for Eleventy without a backend.
An Eleventy contact form can stay fully static. Add a standard HTML form to a Nunjucks, Liquid, or HTML template, post it to FormsFort, and receive submissions without a server function.
How it works
Three steps to production forms.
Create a form
Create a FormsFort form and copy the public access key.
Add a partial
Place the form in an Eleventy include so every template can reuse it.
Build and deploy
Run your 11ty build and deploy the static output to any host. FormsFort handles submissions.
Setup
Eleventy include with contact form
<!-- _includes/contact-form.njk -->
<form action="https://api.formsfort.com/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
<label for="name">Name</label>
<input id="name" name="name" type="text" autocomplete="name" required />
<label for="email">Email</label>
<input id="email" name="email" type="email" autocomplete="email" required />
<label for="message">Message</label>
<textarea id="message" name="message" rows="5" required></textarea>
<input type="checkbox" name="botcheck" style="display:none" />
<button type="submit">Send message</button>
</form>
<!-- Use it from a Nunjucks page -->
{% include "contact-form.njk" %} Migration
Migration checklist.
Move an existing form in minutes without rebuilding markup.
Create a FormsFort form and copy the public access key.
Create _includes/contact-form.njk, or use Liquid/HTML if that matches your Eleventy setup.
Paste the form snippet and replace YOUR_ACCESS_KEY.
Render the include from your contact page or layout.
Run the Eleventy build and deploy the generated static files.
Submit a test message from the deployed URL.
Related Resources
Keep building from here.
Jamstack form backend
Use the same static-form pattern across Eleventy, Hugo, Astro, Nuxt, and SvelteKit.
HTML form examples
Copy accessible field patterns for contact, upload, checkbox, and select forms.
Static site form guide
See the broader setup path for static site generators without backend code.
FAQ
Common questions.
Can Eleventy process form submissions by itself?
No. Eleventy builds static files. Use a hosted form backend when submissions need email delivery, spam filtering, uploads, webhooks, or logs.
Does this work with 11ty on GitHub Pages?
Yes. The generated page is static HTML and posts to FormsFort, so it works on GitHub Pages and other static hosts.
Can I use Liquid instead of Nunjucks?
Yes. The form is plain HTML. Put the same markup in a Liquid include or directly in an Eleventy page.
Can Eleventy contact forms support file uploads?
Yes. Add enctype="multipart/form-data" and a file input, then enable uploads on the FormsFort form.
Stop managing form servers.
Create a production form endpoint, migrate your first form free, and scale when you are ready.