Popsicle Boat as a comment section

Projects
Popsicleboat

The usual ways to put comments on a blog: a third-party widget, a self-hosted comment server, or silence. I can respect the choice for silence. Self-hosting means running a spam-fighting service forever. And a third-party widget means bloat which adds weight to the loading of your site.

This blog does a fourth thing, and any blog can use what it uses.

The pattern #

A post that wants a discussion gets a thread on Popsicle Boat, and the post links to it. That’s the entire integration:

<a href="https://www.popsicleboat.com/c/programming/posts/168">
  Discuss this post on Popsicle Boat →
</a>

What the reader’s browser sees #

Nothing. A link is inert. There is no script, no iframe, no cookie, nothing for a content blocker to block, no consent banner. The blog page stays exactly as private as it was.

Following the link lands on a public thread: reading requires no account, replying takes a free one. Popsicle Boat itself carries no ads and loads no third-party scripts.

Steps, for any blog on any stack #

  1. Make an account at popsicleboat.com.
  2. Find a space that fits your post’s topic, or propose one.
  3. Post there about your article.
  4. Copy the thread’s URL and link it from your article.

Repeat per post. Moderation is already whatever you can do with your own posts.

If you’d rather skip the setup, popsicleboat.com/for-bloggers is the short version: send your blog’s address and you get a space for it the same day.

I tried the widget version. I had an embedded iframe mirroring the thread onto the blog and removed it. Replies written for a community read strangely when syndicated somewhere else, and an embed is one more thing a reader’s browser has to trust.

The simple link I have now asks nothing.

A nicety for static sites #

Threads are posts, and posts sometimes get deleted. So the build checks. It fetches each linked thread and only prints the link if the thread is still there. Delete a thread and the link just disappears, no dead end for a reader.

{{ with .Params.popsicleboat }}
  {{ with try (resources.GetRemote .) }}
    {{ if not .Err }}
      <p class="boat-discuss">
        <a href="{{ $.Params.popsicleboat }}">Discuss this post on Popsicle Boat &rarr;</a>
      </p>
    {{ end }}
  {{ end }}
{{ end }}

That’s the whole system. No ad network, no analytics script, and the conversation happens somewhere built for conversations. No anchor tag for tracking anyone.

I hope you find it useful, again it’s all in the spirit of getting back an internet that is simple. No bloat. Just communication.

Replies from Popsicle Boat

audiodude ·

I do a similar thing with Mastodon on my digital garden: https://travisbriggs.com/garden/comments-research/

Except that I use the Mastodon server at mastodon.online for outsourcing the moderation capabilities and such. I've found that the silence wasn't because I had no comment system...

Reply

jake ·

Thought you'd like to know your reply ended up on jva.lol too — printed into the page, right under the post it discusses. Your comments research, out in the wild.

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