Server

The server consists of two parts. The Matrix homeserver (typically Synapse), and the Cactus Comments application service (cactus-appservice). The appservice manages the comment section rooms on the homeserver, creating new ones on-demand when you need them. It also helps you manage moderation, by replicating bans and power levels across all comment section rooms. It provides a chatbot interface in the moderation room for you to interact with it.

You can use the public Cactus Comments server provided by us or host your own. Self-hosting allows you to be independent from any third party (in this case, us), at the cost of setting up and running your own server. See Self-Hosting for more details.

Architecture

The Cactus Comments application service implements the Application Service API. This means we have to expose an HTTP web server. We implemented our web server in the flask microframework and the entire application in Python 3.9. We interact with the Matrix homeserver with pure HTTP calls and not through an SDK using the requests HTTP library. The application is containerized with docker. You can read and contribute to the entire source code here.