Hugo

Feedback widget
for Hugo.

Add one partial to your baseof.html layout. Zero runtime, static output.

Hugo builds static HTML, so the widget is purely a client-side script you drop into the layout. Add it to baseof.html before the closing body tag and every generated page ships with it.

~12kb
gzipped
0
config
MIT
license
Install1 step
> layouts/_default/baseof.html· html
<body>
  {{ block "main" . }}{{ end }}

  <script src="https://unpkg.com/@usero/sdk"></script>
  <script>
    Usero.initUseroFeedbackWidget({ clientId: "YOUR_CLIENT_ID" });
  </script>
</body>

Replace YOUR_CLIENT_ID with the id from your Usero dashboard.

Built for Hugo

Why teams shipping with Hugo pick Usero.

Lives in the base template

baseof.html wraps every page Hugo renders, so a single edit there puts the widget on every post, page, and section list.

No Hugo Pipes or asset processing

The script is loaded from a CDN, so you do not run it through resources.Get or Hugo Pipes. Add the tag and rebuild.

Static output stays static

Hugo emits the script tag into the HTML unchanged. There is no server runtime, the widget is the only JS you added.

Theme override friendly

If your theme ships its own baseof.html, copy it into your project layouts to override, then add the script. Hugo prefers your copy.

Frill embeds an iframe that fights a static site's lean output. The vanilla SDK is one 12kb script that keeps Hugo output close to static.
vs Frill iframe

FAQ

Quick answers, Hugo edition.

Which layout file do I edit?

layouts/_default/baseof.html, before </body>. It is the base template every page extends, so the widget then appears site-wide.

Do I need Hugo Pipes to bundle it?

No. The CDN script tag needs no asset pipeline. If you want to self-host the bundle, drop it in static/ and reference that path instead.

What if my theme owns baseof.html?

Copy the theme's baseof.html into your project's layouts/_default/ to override it, then add the script. Hugo's lookup order prefers your project copy.

Will it work with Hugo modules?

Yes. The widget is independent of how your templates are sourced. Module-based or local, the script tag behaves the same.

Ship a feedback widget in your Hugo app today.

Free tier. No credit card. Two-minute install. Cancel by deleting two lines of code.

Get started free