Platforms / Hugo
Contact form for Hugo — no backend required
Hugo is static. Anything that needs SMTP at request time has to live elsewhere.
Setup
- Create a FormHeron form.
- Add the form partial to layouts.
- Ship with your usual hugo deploy.
Working example
<form action="https://formheron.com/f/YOUR_KEY" method="POST">
<label>
Email
<input type="email" name="email" required />
</label>
<label>
Message
<textarea name="message" required></textarea>
</label>
<!-- honeypot: off-screen, not type=hidden -->
<input type="text" name="_hp" tabindex="-1" autocomplete="off"
aria-hidden="true" style="position:absolute;left:-9999px" />
<button type="submit">Send</button>
</form>Common problems
Netlify forms vs FormHeron
Netlify forms are host-locked. FormHeron works on any host and gives a lead inbox + webhooks.
Shortcodes
Wrap the form in a shortcode if editors need to drop it into content.
Multilingual sites
Reuse one key; localize labels only.
FAQ
How do I add a contact form to Hugo?
Include an HTML form partial with FormHeron as the action.
Does Hugo need a backend?
Not for contact forms when FormHeron receives the POST.
Spam protection?
Honeypot always on; optional Turnstile; rate limits; spam never spends quota.