The name is temporary. We'll find a better one!
Status: in development.
Posca is the code name for an experimental social networking project based on Matrix. The aim is to implement the functionalities of the classic social networks (Twitter, Reddit, Facebook, Instagram, Discourse and Discord), in a unified interface and in a decentralized, interoperable way.
Different interfaces for different needs
Although Matrix was primarily intended for instant messaging, by design it is adaptable to all types of content. The ambition of Posca is therefore to meet all of the varied needs of the community within a single platform. This will be achieved in the implementation of several interfaces for the varied needs of different social media applications (grouped using "spaces'):
- A microblogging interface for status display, like Twitter and Facebook: this would enable the display of replies in a "tree" structure, and would be used to display themed rooms, walls and feeds at the same time;
- A forum interface, like a mixture of Reddit and Discourse, also allowing tree replies and topic-based operation;
- An instant messaging interface, implementing most of the features found in Element and Discord ;
- A media interface, allowing quick browsing of image and video sharing rooms, inspired by Instagram and TikTok.
Custom feeds
While the feed functionality is not yet present in Matrix, and will probably require adding features to the main server software, it seems to us crucial to enable a large number of rooms to be followed easily. The use of specific rooms would also unlock new uses: the creation of personalized feeds (by choosing to filter on a type of room, or on a selection of rooms, or even on the public publications of the same person, which would enable the existence of an activity feed), the sharing of these personalized feeds, or perhaps even one day the choice of a content highlighting algorithm.
Other features
Other functionalities that we feel are necessary for the implementation of a usable social network are as follows:
- Powerful moderation tools;
- Public content search;
- Content transfer (share/retweet);
- End-to-end encryption.
The creation of mobile versions of the application will follow.
Interoperability with ActivityPub platforms will be achieved thanks to our project Kazarma.
How Matrix avoid ActivityPub issues
ActivitPub has permitted the existence of many alternative to commercial social networks, and their success has shown the demand for such services.
We believe that the way ActivityPub works involves flaws that make them unsuitable, particularly in the case of private communities:
- The way ActivityPub handles āpublicā posts is obtuse for the user and can cause them harm: itās difficult to know who can read a public post on Mastodon, even though this is its main mode of operation. Many people donāt want to maximize the visibility of publications and are instead intending them to be read by closer connections (limiting access to posts to followers is restrictive for newcomers and it requires a constant monitoring of individual followers). This can cause permanent stress for people who are in fact using a tool designed for public use, but who have more nuanced privacy needs.
- At the same time, it makes what were originally technical concepts - instance and federation - visible and crucial. Due to ActivityPub's public nature, moderation can only take place at instance level, and federation, which should only be a technical detail and therefore "invisible", becomes a political choice, as we can see from the discussions surrounding the blocking of far-right instances or Threads. This question of moderation, along with the need to trust system administrators due to the absence of end-to-end encryption, and the existence of a feed dedicated to local content, makes understanding the nature of the decentralized network more complicated than it should be (the choice of an instance is simultaneously unimportant, thanks to federation, but also "rather important").
Matrix
Matrix works in a completely different way, in that all content belongs to a "room" in which it is published. The presence of potentially undesirable instances is not harmful to the network, as content is only shared on the servers of users who have joined the room in question (the existence of private rooms - by invitation - is very important here). Moderation is also carried out on a per-room basis, enabling it to be distributed between members of different servers, and the ability to encrypt messages in private rooms means that trust in the people administering the servers is not necessary.
The public-first way of operating (that Twitter and Mastodon among others post āinto the voidā by default) nevertheless has its purposes. Users might want to post to their followers, to a particular room/group, or to a wider audience.
Technical details
Posca is made with Melange, an OCaml-JavaScript transpiler. The use of a highly typed language, as well as the fact of using an existing server and the Matrix SDK, enable us to concentrate on the functionalities themselves, and to achieve rapid development despite the small size of our development team.
The source code is released under the AGPLv3 free license, and is available on GitLab.com.