Platforms / Hugo

Contact form for Hugo — no backend required

Hugo is static. Anything that needs SMTP at request time has to live elsewhere.

Setup

  1. Create a FormHeron form.
  2. Add the form partial to layouts.
  3. Ship with your usual hugo deploy.

Working example

layouts/partials/contact-form.html
<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.

Related platforms