Stacks/Sutrena + Hugo

Sutrena + Hugo

Hugo builds in milliseconds. Adding a form takes one HTML partial.

Updated March 2026

What is Hugo?

Hugo builds thousands of pages in milliseconds. Written in Go, no JavaScript runtime needed. Markdown content, Go templates, taxonomies, i18n, asset pipelines. Output is plain HTML that goes anywhere. It is the fastest static site generator. That is basically the whole pitch.

How Sutrena fits

Hugo generates static HTML. Sutrena hosts it. Adding a Sutrena form means including the embed snippet or writing a small inline script in a Hugo partial. No module, no shortcode library, no Go template complexity.

Make a partial that includes embed.js with your form ID. Drop it in any page template. Visitors see the form, submissions go to Sutrena. Add analytics to track page views and visitor sources — auto-tracked on Sutrena Pages, zero setup. The entire integration is one HTML snippet.

For hosting: build your Hugo site, then deploy the output HTML to Sutrena Pages via the API or MCP tools. Multi-page sites, hierarchical slugs (blog/my-post), asset uploads to CDN, custom subdomains and custom domains — all supported. Hugo builds the pages, Sutrena serves them. No external hosting needed, no matter how many pages or how advanced your Hugo features are. The output is HTML, and Sutrena hosts HTML.

Example

<!-- layouts/partials/sutrena-form.html -->
<!-- Hugo partial for embedding a Sutrena form -->

{{ $formId := .formId | default "frm_your_id" }}

<div id="sutrena-form-container"></div>
<script
  src="https://sutrena.com/embed.js"
  data-form-id="{{ $formId }}"
  data-container="sutrena-form-container"
  async
></script>

<!-- Usage in a Hugo template: -->
<!-- {{ partial "sutrena-form.html" (dict "formId" "frm_contact01") }} -->

<!-- Alternative: custom HTML form without iframe -->
<!--
<form id="contact-form">
  <input name="name" placeholder="Name" required />
  <input name="email" type="email" placeholder="Email" required />
  <textarea name="message" placeholder="Message" required></textarea>
  <button type="submit">Send</button>
</form>

<script>
document.getElementById("contact-form")
  .addEventListener("submit", async (e) => {
    e.preventDefault();
    const data = Object.fromEntries(new FormData(e.target));
    const res = await fetch(
      "https://sutrena.com/api/forms/frm_contact01/submit",
      {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify(data),
      }
    );
    if (res.ok) {
      e.target.innerHTML = "<p>Thanks! We will reply soon.</p>";
    }
  });
</script>
-->

<!-- Sutrena form created via API: -->
<!-- POST https://sutrena.com/api/forms -->
<!-- {
  "name": "Hugo Site Contact",
  "fields": [
    { "name": "name", "label": "Name", "type": "text", "required": true },
    { "name": "email", "label": "Email", "type": "email", "required": true },
    { "name": "message", "label": "Message", "type": "textarea", "required": true }
  ],
} -->

Cost

Hugo: free, open source. Cloudflare Pages (or GitHub Pages, Netlify): free. Sutrena Free: $0/month for 10 projects. Sutrena Pro: $29/month for 100 projects. Total: $0/month for a Hugo site with a few forms. Pro ($29/month) if you need more.

FAQ

Do I need to install a Hugo module for Sutrena?

No. It is pure HTML. Copy the snippet into a partial. No Go modules, no npm packages, no plugins.

Can I use different forms on different Hugo pages?

Yes. Pass the form ID as a parameter to the partial. Each page can embed a different form.

Does this work with Hugo's asset pipeline?

The embed script loads from a CDN, not through Hugo's pipeline. If you write a custom form, you can put the JS in a Hugo asset file and pipe it through minification.

How fast is the Hugo build with Sutrena?

Sutrena does not touch build time. The form loads client-side at runtime. Your build stays in the milliseconds regardless of how many forms you embed.

What is Sutrena?

Sutrena is the web runtime for AI agents. Forms, Pages, Analytics, Webhooks, Automations — all through 67 MCP tools and one REST API. Your agent creates web artifacts, humans interact with them, and your agent gets the data back. Use any one feature or all of them together.

Pages

Deploy HTML instantly

Forms

Collect structured data

Automations

DSL-based pipelines with 14 step types

Analytics

Privacy-first, no cookies

Webhooks

Slack, Discord, Telegram

Get started in two API calls

1. Get a trial key (no auth, no signup)

curl -X POST https://sutrena.com/api/trial

2. Create anything — a page, form, automation, or analytics site

# Create a form
curl -X POST https://sutrena.com/api/forms \
  -H "Authorization: Bearer st_trial_xxx" \
  -H "Content-Type: application/json" \
  -d '{"name": "waitlist", "fields": [{"name": "email", "label": "Email", "type": "email", "required": true}]}'

# Or deploy a page
curl -X POST https://sutrena.com/api/pages \
  -H "Authorization: Bearer st_trial_xxx" \
  -H "Content-Type: application/json" \
  -d '{"slug": "index", "title": "My Site", "html": "<h1>Live</h1>"}'

Ready to build?

Get a trial API key instantly with no signup, or create an account for the full experience.

Sutrena + Hugo -- Static site forms with zero build overhead | Sutrena