Comments are Back

Comments on new articles (2023+) are now possible and the old comments from the Wordpress blog have been migrated.

It Took Some Time

Comments are inherently dynamic (i.e. they are not written by the article’s author) which runs against the paradigm of a static site as Hugo or other Static Site Generators create.

To store the comments you need some kind of database (unless you use a Git workflow for your comments as some tools propose, e.g. Staticman). As a static site usually hasn’t a DB a commenting solution basically integrates a DB with some script magic.

It took me some time to integrate Cactus in my blog, because I wanted to add it to the theme (similar to the commenting solutions already supported by the theme) and I wanted to have the same visual appearance for the comments migrated from the old wordpress blog. Here’s an example of an old article with migrated comments.

Why Cactus Comments

There exist some easy solutions, ready to be integrated with Hugo, but I wanted an open source solution that is privacy-friendly and ad-free, which rules out the easiest solution (Disqus).

In addition to that I prefer solutions where I don’t need to host and maintain the commenting solution myself and that doesn’t cost too much, at least for the first few months, as my blog has not much traffic (let’s stay realistic and honest here…).

So here’s a list of some Open Source commenting solutions:

  • Commento: costs $99/a unless you self-host it
  • Remark: only self-hosting
  • Staticman: needs a self-hosted agent to interact with your Git repo
  • Talkyard: costs 30€/a unless you self-host it
  • Utterances: uses GitHub Issues to store the comments
  • Gitalk: uses GitHub Issues to store the comments
  • Giscus: uses GitHub Discussions to store the comments
  • Cactus: uses Matrix chat rooms to store the comments

I like the idea of using an existing system like GitHub or Matrix to store the comments, it gives your commenters access to their comments outside your blog (let’s talk GDPR…).

The solutions using GitHub are nice, but they require a GitHub account to write comments, so I chose Cactus which allows anybody to write comments.

First Impressions of using Cactus

I’m not only new to Cactus, but also to Matrix, the underlying technology, so bear with me if I don’t get everything right.

Every article has it’s own Matrix chatroom, so you can write and read comments also with any Matrix client (the best known is Element).

Of course Cactus support also happens in a Matrix chatroom; a very reactive community indeed.

A quote by I stole from this chatroom explains Cactus’ advantages:

“Cactus Comments: your comments are your data. Own them!

Unlike other comment systems, Cactus Comments is not a warehouse, but a post office. Your comments don’t just go into a database owned by somebody else. What you write in Cactus Comments is sent from your own regular matrix account. This means you interact on an equal footing: for example,

  • if the site operator may choose not to display your comment, but they don’t have control of the only copy of it, you get to keep your own copy of whatever you write, as long as you like.
  • And if you replied to someone, or someone replied to your comment, you are free to keep a copy of their comments too, even after those people close their accounts.

That’s an example of what we mean when we speak of the freedom brought by using an open system built on open protocols: the freedom not to be controlled absolutely by some other person or company’s system, but for you to choose how the system works for you and maintain some control over your own participation.”

What’s Next?

As Cactus and Matrix are evolving technologies with dynamic communities, the future is bright. One feature that is currently missing is the ability to close comments on specific articles, but usually I don’t want to close them before a couple of months, so there is no hurry there.

A big thank you to the creators and maintainers of Cactus!

Peter Steiner

Software Developer and Opinionated Citizen