Hugo builds in milliseconds. Adding a form takes one HTML partial.
Updated March 2026
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.
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.
<!-- 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 }
],
} -->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.
No. It is pure HTML. Copy the snippet into a partial. No Go modules, no npm packages, no plugins.
Yes. Pass the form ID as a parameter to the partial. Each page can embed a different form.
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.
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.
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
1. Get a trial key (no auth, no signup)
curl -X POST https://sutrena.com/api/trial2. 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>"}'Get a trial API key instantly with no signup, or create an account for the full experience.