Your site can keep the comments

Projects
Popsicleboat, Hugo

The last post about this describes the arrangement. For instance, this blog has no comment system of its own. Posts here with a comment section (optional for each post, not sitewide) link to a thread on Popsicle Boat. There’s just one anchor tag, no JavaScript or third-party library loaded in the reader’s browser.

Build time, not run time #

Every thread on the boat now publishes its public replies as plain JSON. It’s stored as the thread’s address plus /replies.json:

{
  "thread": {
    "title": "The panel that closed itself",
    "url": "https://www.popsicleboat.com/c/blogging/posts/175",
    "reply_count": 1
  },
  "replies": [
    {
      "author": "jake",
      "body_html": "<p>Test</p>",
      "posted_at": "2026-07-12T23:53:45Z",
      "url": "https://www.popsicleboat.com/c/blogging/posts/175#reply-176"
    }
  ]
}

A static site fetches that while it builds and prints the conversation into the page as ordinary HTML. This blog’s Hugo template does it in about ten lines:

{{ with try (resources.GetRemote (printf "%s/replies.json" .Params.popsicleboat)) }}
  {{ if and (not .Err) .Value }}
    {{ $replies := .Value.Content | transform.Unmarshal }}
    {{ range $replies.replies }}
      <article class="boat-reply">
        <p><strong>{{ .author }}</strong> · <a href="{{ .url }}">{{ dateFormat "January 2, 2006" (time .posted_at) }}</a></p>
        {{ .body_html | safeHTML }}
      </article>
    {{ end }}
  {{ end }}
{{ end }}

What this actually changes #

Reading happens at home. Your blog is where the conversation is read. Popsicle Boat is where it happens. Readers who want to say something click through to Popsicle Boat. You keep full moderation control there without running any comment infrastructure yourself.

Your site owns all the data. Every build, your site writes its own copy of every conversation. If popsicleboat just died for some reason, the comments on your site would still be right there in your HTML.

Fresh replies appear on your next build. Static sites rebuild all the time; the conversation is always as up to date as your deploy habit, and the live thread is one click away.

The comments come home, you have nothing to maintain. No annoyances, no ads, no cookies, no banners.

Replies from Popsicle Boat

jake ·

It's a really cool feature ya'all

Reply

Replies come from Popsicle Boat members. Accounts are required, it’s why there’s no spam. You’ll sign in there (or create an account, it takes a short minute), confirm before it posts, and land right back here after.

Left one of the replies above? It stays yours — you can edit or delete it in the thread, and this page follows on its next build.

512KB Club Orange Team member