For bloggers

The offer, in one sentence: A hassle-free comment section for your blog: set up once, totally free, no subscriptions, nothing, and your site keeps its own copy of every conversation.

PopsicleBoat is a small social web for creators: no ads, no tracking, nothing running on your page, built and looked after by one person (me). If your blog has no comments (on purpose, or because every option is either surveillance-ware or a maintenance chore), PopsicleBoat can host the conversation instead.

Claim your space

That button walks you through a quick signup. Prove the blog is yours with one link and it gets approved. Or read on first.

The one-line version

Once your space names your blog, paste this at the bottom of any post (or once into your footer template) and the comment thread creates itself the first time anyone clicks:

[Comments](https://www.popsicleboat.com/discuss?url=YOUR-POST-URL)

No ids, no setup per post, nothing loads on your page. The thread appears in your space, under your moderation.

How it works

  • You claim a space. A quick signup, one link on your blog as proof, and it gets approved, usually the same day.
  • You paste the Comments line. Once in your footer template, or at the bottom of any post that wants conversation.
  • Threads create themselves. The first click mints the thread in your space, under your moderation, titled after your post. Readers click through, read freely, and reply if they care enough to join.

Prefer to wire it yourself? The API is one page.

One post a month, one post a year, one post ever. All fine.

See it working

This isn't hypothetical. My own blog uses it. Here's a post: What's new aboard. Here's its discussion thread on the boat. The Comments link on the essay is the whole visible integration; the page also prints its replies itself, fetched at build time.

What your readers get

  • Reading is open: no account needed to follow the conversation.
  • Replying takes an account, which is the point: replies come from named members of a small community, not drive-by spam. You'll never moderate a spam queue.
  • Your space gets its own RSS feed automatically, so readers can follow your discussions from any feed reader.
  • Writing supports simple formatting (links, emphasis, code) with a live preview.
Your site can keep the comments

Every thread's public replies are also published as plain JSON at the thread's address plus /replies.json. A static site can fetch that at build time and print the conversation on the post page itself. No script, no iframe, nothing in your readers' browsers.

My own blog is wired this way, and it makes the no-lock-in promise physical: the copies your site builds are yours to keep, whatever happens to the boat.

The JSON is small and stable. This is the whole shape:

{
  "thread": { "title": "…", "url": "…", "reply_count": 2 },
  "replies": [
    {
      "author": "username",
      "body_html": "<p>rendered, sanitized markup</p>",
      "body_text": "the same words as plain text",
      "posted_at": "2026-07-13T02:18:26Z",
      "url": "the reply's permalink",
      "depth": 0
    }
  ]
}

At build time, fetch popsicleboat.com/discuss/replies.json?url=YOUR-POST-URL and print the replies. No thread ids; it redirects.

A build hook in your account settings rebuilds your site when replies land. If the boat is unreachable, no JSON, and your page ships whole.

For example, how I do it in Hugo:

{{ $data := dict }}
{{ with try (resources.GetRemote (printf "https://www.popsicleboat.com/discuss/replies.json?url=%s" .Permalink)) }}
  {{ if and (not .Err) .Value }}
    {{ $data = .Value.Content | transform.Unmarshal }}
  {{ end }}
{{ end }}
{{ with $data.replies }}
<section>
  <h2>Replies</h2>
  {{ range . }}
  <article style="margin-left: {{ math.Min (int (.depth | default 0)) 3 }}em">
    <p><strong>{{ .author }}</strong> · {{ .posted_at }}</p>
    {{ .body_html | safeHTML }}
  </article>
  {{ end }}
</section>
{{ end }}

The promises

  • No lock-in. The integration is a link on your site. Remove the link and you've left, nothing held hostage.
  • No ads, no tracking, ever. The privacy policy is one page of plain sentences.
  • Free. The boat is a labor of care with bounded costs, not a growth machine with a pricing page waiting to hatch.
  • A person answers. Moderation questions, feature wishes, or "this feels off": you write to me and I reply.
  • Wire the JSON and your blog keeps every comment. Conversations get built into your site's own pages, as on my blog. If PopsicleBoat vanished tomorrow, those pages would still show every comment they ever showed.

How is this funded?

The boat is funded out of my own pocket, with no investors or ads. It's a labor of care, and I keep the costs bounded.

I wrote a post about it