Teamwork without noise

Public, open source P2P communities

Aether P2P dev.14 released with moderation transparency, content deletion

I’ve cut a new update for Aether, and this update comes with a lot of goodies. Without further ado, let’s dig in.

<shilling>
Aether’s P2P edition (which this update is about) is supported by Aether Pro, a team collaboration tool for introverts. It’s an internal Reddit-like forum for your company. This is better than Slack because it allows you to focus more, and for longer, because that it’s not live chat but asynchronous, n-level deep threaded posts with no immediate pressure to respond.

If you’re an engineer or a team lead who’s getting needlessly pinged all day long, Aether Pro could help. Check it out at aether.app.

(The code FOUNDER-REFERRAL gets you 30% off if you want to give it a shot.)</shilling>

Aether P2P primer

For those who are new, Aether P2P is an open-source peer-to-peer communication platform. Its basic idea is like Reddit to the modern viewer, but the actual idea comes from much older times — from Usenet.

Aether P2P is a decentralised Usenet.

We have a few hundred communities, spam protection with proof-of-work, and a unique moderation system based on the principle of the consent of the governed.

In a little more detail, one of the core features of Aether is that the moderation layer is implemented as a filter. This filter gets applied at the user’s local machine: the users can choose which moderators that they want to respect the moderation of. A user can disable the mod actions of an individual moderator. If that happens, even if that mod deletes some content, it will remain visible to the user. Likewise, a user can also choose a non-mod person to be his or her moderator for that community. In this case, mod actions released by that person will apply to the local user.

These make-mod and disqualify-mod commands double for votes in another Aether concept called mod elections. Every community holds a continuous elections process. This process can promote users to mod status if enough people make these users a mod for that community.

You can find more information about this at the documentation: Moderation and Elections in Aether P2P

(Aether Pro is different — it’s a SaaS app that largely shares Aether P2P’s visual design and communication style, but it has an enterprise backend suitable for work).

New features

Moderation transparency

This feature adds the front-end for the mod activity tab as the last piece, making it user-visible. That means all moderation actions taken so far, are now visible to all users, as well as their stated reasons.

It looks like this:

This is a cornerstone for implementing the remainder of the elections support, which is as of now only supported in the backend.

One thing that is noteworthy in the screen is that there is a concept of a ‘deletion request’. This is only applied if you accept the modship of the issuing user. That means there can be multiple deletion requests per post. Some, all, or none might apply based on your preferences. For the time being this is read-only. In the future, you will be able to control which of these deletion requests will apply as well.

With this, Aether gains its first feature that is not available anywhere else, in any other app (that we know of): Moderators and moderation actions are transparent to the users.

Self-deletion

You can now delete your posts in a fashion that does not break the layout of the conversation. Your post will be replaced with a [deleted] and posts that respond to you will be retained.

This is different from a mod deleting your content; when a mod deletes your content, your content disappears for anyone who regards that mod as authoritative. This self-deletion, on the other side, makes your post’s text disappear from everyone, regardless of whether they trust you or not. This is possible because you own the post in question and have edit rights, which a moderator does not.

New content indicators

When there’s new content in a community you’ve been a member of, that community will pop up a blue highlight notifying you of new content within.

Improvements, bugfixes and internal changes

I’ve upgraded the versions of dependencies, so everything should be a little snappier. Also fixed a lot of miscellaneous bugs and spent some time rearchitecting some of the components. This should make them more amenable to our upcoming elections system. You can see the full list of these changes at the changelog.

Future, or where do we go from there

Sustainability for Aether P2P and Aether Pro

At the beginning of this year, I’ve received some small amount of pre-seed venture capital to make Aether Pro. Aether Pro uses a similar code-base to create a SaaS team collaboration app that is well suited to engineering teams between 5 to 50 people. This is because it gives you an internal forum with like Reddit-like threads. This lifts the noise ceiling (after which conversation starts to fray at the edges) from 5~ people in a Slack channel, to thousands.

Aether Pro pays for the development of Aether P2P through its marketing budget. It makes it so that if we succeed, we will never have to monetise Aether P2P. This is a way to make Aether into a sustainable business that pays for me and a small team so we can continue working on it.

If you think you’d be interested in an internal forum that’s great for software architecture discussions, across multiple time zones or from the next room, give it a shot. More info and a much better telling of what problem it solves for you are at aether.app.

Upcoming planned features

Elections

We are well on our way to finish the elections service, which I consider the last major not-yet-implemented feature of Aether.

Nominally speaking, it’s already available in the backend in a halfway-built stage. However, it remains disabled on the production builds. With the experience from these updates shipping today, we’re one step closer to having them run in production.

Partial sharing

We also have another, more mundane, but major feature request. This is being able to control what your computer retransmits to other nodes. Since Aether is a peer-to-peer network, it shares and retransmits all content it receives to other computers — you’re a peer in the swarm. However, this is not always desirable, and people can have personal objections to sharing certain pieces of content.

As it stands, Aether works by having a compressed, text-based copy of the whole network on a 6-month rolling basis on every node. This kind of selective sharing would make our ’full nodes into partial nodes. The work required for this feature is that I need to make sure that the application does not make assumptions about being able to receive all content that is no longer valid in this partial-sharing environment.

Filter lists

One example of this filter lists feature is already in, the SFW list. This is an optional feature that enables us to mark certain communities as SFW. The user can then choose whether they want to see SFW posts only, or SFW and NSFW posts.

The filter lists feature makes these kinds of lists into a standard format, a JSON link that the user can add to the app. (The idea is like AdBlock filter lists). This way, the users can create and share their filter lists, and we will no longer need to manually manage them.

Until the next update,
@nehbit