The static site problem
Static site generators like Hugo, Jekyll, Astro, Eleventy, and Next.js in export mode turn your content into plain HTML files. You host those files on a CDN, they load fast, and there is very little to attack or maintain. The catch is that comments need somewhere to be stored and served dynamically, and a static site has no server or database of its own to do that.
You have three broad options: run your own comment backend, use a Git-based tool that stores comments in your repository or issues, or embed a hosted service. Each has trade-offs, and the right choice depends on how much maintenance you want to own.
Option one: self-host a comment backend
You can run an open-source comment server alongside your static site. This gives you full control and keeps data on your own infrastructure. It also means you now operate a database, apply security updates, handle spam, manage backups, and keep the service online. For a site whose whole appeal was having no backend, adding one just for comments is a meaningful reversal. It can be the right call for teams with operations capacity, and the wrong call for a solo blogger.
Option two: Git or issue-based tools
Some tools store comments as GitHub issues or as files committed to your repository. These are clever and genuinely free of a database. The cost is a login wall: to comment, a reader usually needs a GitHub account, which excludes most non-developer audiences. If your readers are engineers, this can work well. If they are not, participation drops sharply.
Option three: a hosted embed
A hosted comment service stores and serves the discussion for you, and renders it into your static page with one script tag. Your site stays static; the dynamic part lives on the service. This is the least-maintenance option and usually the easiest to add. The thing to check is what the hosted service does with your readers, because some are ad-supported and track people.
Gabden is a hosted embed built for this case. The script is around 10KB and loads asynchronously, so a fast static page stays fast. Each thread is keyed to the page's canonical URL, which every static generator sets, so discussions attach to the right pages with no per-post configuration.
Why privacy fits static sites
People who build static sites often care about performance and about not loading heavy third-party junk. A tracking-heavy comment widget undermines both. Gabden uses no tracking cookies, no fingerprinting, and no cross-site tracking, and its analytics are anonymous aggregates only. That keeps the privacy posture of a lean static site intact instead of poking a hole in it for the comment section.
Reader access without a wall
The main weakness of the Git-based route is the login requirement. Gabden lets readers post anonymously, leave a name and email as a guest with no account, or sign in with Google or GitHub if they want a persistent identity. That covers a general audience and still gives developers the GitHub option they might expect.
Installing on a static site
The embed is the same everywhere:
<div id='gabden-conversations'></div>
<script async src='https://YOUR-SITE.gabden.com/conversations.js'
data-page='canonical'
data-theme='auto'></script>
You place it in the template that renders a single post: a partial in Hugo, an include in Jekyll, a component in Astro or Next.js. Set it once and every post gets its own thread by URL. We have platform-specific guides for Hugo and Astro that walk through the exact file.
Moderation, cost, and data
Moderation runs from the dashboard: pre-moderate everything, auto-approve, or auto-approve returning verified people while holding anonymous posts. A blocked-word filter and a spam queue handle the noise, and threaded replies with like and heart reactions keep threads readable. You own the data and can export it as JSON or CSV.
Pricing is free up to 100,000 widget views per month per website with a small mark, and Plus is 5 dollars per month per website for unlimited views and no mark. For a static site, that combination of no maintenance, low weight, and no tracking is usually the best fit. To start, create an account.




Join the discussion