Hugo
Contact form for Hugo without a backend.
A Hugo contact form can stay fully static. Put a standard HTML form in a Hugo template or partial, post it to FormsFort, and receive submissions without running server code.
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 a Hugo partial so it can be reused on contact or landing pages.
Build and host
Run hugo and deploy the static output to any host. FormsFort receives the submissions.
Setup
Hugo partial with contact form
<!-- layouts/partials/contact-form.html -->
<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 template -->
{{ partial "contact-form.html" . }} Migration
Migration checklist.
Move an existing form in minutes without rebuilding markup.
Create a FormsFort form and copy the access key.
Create layouts/partials/contact-form.html in the Hugo project.
Paste the form snippet and replace YOUR_ACCESS_KEY.
Render the partial from the contact page or page layout.
Run hugo and deploy the generated static site.
Submit a test message from the deployed URL.
Related Resources
Keep building from here.
FAQ
Common questions.
Can Hugo process contact form submissions by itself?
No. Hugo builds static files. Use a hosted form backend like FormsFort when submissions need email delivery, uploads, webhooks, or spam filtering.
Does this require Netlify Forms?
No. FormsFort works on any Hugo host because the form posts to an external endpoint.
Can I reuse the form across Hugo pages?
Yes. Put the markup in a partial and render it anywhere with Hugo's partial helper.
Can Hugo contact forms support file uploads?
Yes. Add enctype="multipart/form-data" and a file input, then enable file uploads in FormsFort.
Stop managing form servers.
Create a production form endpoint, migrate your first form free, and scale when you are ready.