GoActivityPub library

These are some of the features and goals that BrutaLinks has currently and plans to reach eventually:

Features

Minimalist user interface

The brutalist web design paradigm appeals to me both as a web user and developer, so I tried to keep content as the focus on the website. Some concesions had to be made to allow for threaded comments and other layout niceties, but I feel like we achieved a good balance.

Submission scores

Based on the number of Yays! and Nays!, every submission or comment gets a scored that determines the position on the page. The scoring algorithm is the one used on HackerNews.

User scores

The way they are being computed is not in the traditional way where it equals the sum of the scores for each of their submissions, but it represents the total number of Yays! the user submitted themselves. This makes it more like a “positivity” score than a submission and discussion quality score.

Threaded discussions

Discussions on BrutaLinks are using a threaded format. There are some additional details in the architecture document.

Anonymous interactions

We would like to support Anonymous commenting (maybe even submissions) on BrutaLinks instances, however the burden that would put on the larger fediverse network requires us to reason some more about how to make that less prone to being abused.

Open moderation log

As it targets mostly small communities BrutaLinks offers user level moderation tools. Muting, blocking and reporting are the three main operations a user can do to protect themselves against unwanted content, people or instances.

There is also a more technical document related to how moderation can be achieved by using only standard ActivityPub vocabulary.

Invitation based user graph

Every user can send invite other people to join a BrutaLinks instance.

Private messaging

Users can message one another, and the privacy of the messages is limited only to the people it addresses. By default a message is sent just to the person it’s being addressed to, but group messages can be sent by using @ mentions of any other users to be included.

Performance

Built using a performant stack, and with minimal dependencies, we try to provide an easy out of the box installation. We provide standalone statically compiled binaries and docker containers. Even though having some developer experience is useful, we’ve tried to make deployment as easy as possible.