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, you get a dashboard. 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 }
  ],
  "createDashboard": true
} -->

Cost

Hugo: free, open source. Cloudflare Pages (or GitHub Pages, Netlify): free. Sutrena Free: $0/month for 10 projects. Sutrena Builder: $9/month for 50 projects. Total: $0/month for a Hugo site with a few forms. Builder ($9/month) or 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. Three primitives — pages, forms, and dashboards — accessible through one API. Your agent creates web artifacts, humans interact with them, and your agent gets the data back. Framework-agnostic. Works from any MCP client or HTTP client.

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 a form + dashboard from a template

curl -X POST https://sutrena.com/api/forms \
  -H "Authorization: Bearer st_trial_xxx" \
  -H "Content-Type: application/json" \
  -d '{"templateId": "waitlist", "createDashboard": true}'

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