Technostructures
  • FR
  • Projects
  • Fronts
  • We support
  • Articles
  • Support us

Posca

Posca is a versatile communication system, combining chat, forum, microblogging and media sharing. It’s the first step towards the organizational tool for collectives of our dreams, Imago.

Based on Matrix, means that Posca can be used with any Matrix account, enabling conversations to be grouped and prioritised. Posca will implement end-to-end encryption.

Currently in development, you can try out Posca on posca.pm, and read the source code on GitLab.com.

Join us for a discussion on Matrix.

A social network for communities

Most social networks are built on a public mode of operation. It's suitable for public figures, brands and journalists, but often ill-suited to the rest of the user base. Posting is like participating in a large-scale arena, with its share of stress, cyberstalking and the valorization of emotionally-charged content.

Faced with this (and through a process that Marc Jahjah describes as “collective [self-]education in the dangers of ultra-visible publication”), group operation is a welcome alternative. Its success can be seen in the rise of group messaging (WhatsApp, Discord, Telegram...), and Facebook groups. It also works well in public groups, as shown by Reddit and Lemmy. Even microblogging is no exception, with many Mastodon instances organizing themselves into more or less closed communities.

Group operation is at the heart of Posca. Groups can also be included within each other, in a hierarchy of groups and sub-groups.

Group and room access can be public, by invitation or by request to join.

The main modes of communication in a unified interface

We divide the spirit of existing communication platforms into 4 interfaces, which we feel are complementary for collective organization:

  • Instant messaging, which allows rapid and synchronous discussions, but dilutes important information;
  • The forum, for asynchronous discussions over a longer period of time, suitable for long messages;
  • Micro-blogging (or status sharing), adapted to external communications, opinions and mood statuses;
  • Media sharing (images, audio and video), which is often included in other platforms but deserves its own channel.

These 4 views implement a “branching” (non-linear) response system, which encourages a proliferation of points of view and avoids the problem of responses that are no longer relevant after a certain time.

Color-coding makes it easy to see at a glance how the different areas work.

Choosing the Matrix ecosystem

Matrix is an open protocol, managed by a foundation with the involvement of a large community. There are many advantages to relying on this protocol.

Decentralized design

Matrix is a decentralized protocol made up of multiple interconnected servers. Like e-mail, you can create an account on one of these servers, and communicate with people on other servers. Since moderation is done by “room”, the server chosen is of little importance.

Our users are granted the choice of using a secure server hosted by us to communicate with the rest of the network at large, but they can also choose to host their own server.

This structure results in a highly resilient network, and a distributed load between the different hosts.

A vibrant ecosystem

Although the maintenance of the protocol and certain important components rely heavily on the Matrix Foundation and the Element company, many people participate by developing clients and applications, and can influence the future of the protocol thanks to the democratic operation of the foundation.

Many communities have already migrated to Matrix for their communication needs, particularly in the open-source sector (Mozilla, KDE, Blender...). Matrix is also frequently chosen by (para-)governmental institutions for massive deployments of secure messaging.

Modular functionality

Although initially created for chat, the protocol is generic enough to allow all kinds of applications, and will enable us to easily add the various functionalities relevant to group organization.

The interoperability at the heart of Matrix’s Events makes users free to choose Posca, or any other client.

Using an out-of-the-box Matrix server (Synapse), we can concentrate on the client, and therefore on a clear, well-designed interface.

Reliable end-to-end encryption out-of-the-box

We use the cryptography libraries used and developed by Element, which allows us to add high-level security without needing to tackle the extremely complex problem of implementing a cryptosystem ourselves.

Access to ActivityPub via our bridge, kazarma

We plan to interface Posca with an ActivityPub bridge we created called kazarma, which would enable us to interoperate with services such as Lemmy or Mobilizon (and if we ever decide to implement a public version of Posca, with Mastodon, Pixelfed, Peertube...).

Challenges to overcome

Interface and user-experience

Posca's functionalities can be complex. We use familiar interface concepts as often as possible, but some paths require us to think outside the box. Our aim is always to design user interfaces that are instinctive, or at least quickly mastered.

To ensure that development is based as closely as possible on real-life use of Posca, we'll be running test sessions and asking our beta testers to report back on their experiences.

Here are a few examples of complex functions that should be made easy to use:

  • navigation in a hierarchy of groups with different types of rooms. This is a central concept and one that is used extremely often.
  • end-to-end encryption. Matrix's cryptography is more complex than that of Signal or Whatsapp, as it natively allows the use of multiple devices. This implies that these devices verify each other, and share the encryption keys of old messages. The keys to old messages are also stored (encrypted) on the server, so you don't lose your history if you lose your devices;
  • the homeserver, an intrinsic concept to decentalised networks. Even if the choice of homeserver has little impact on the use of the application itself, making this choice during the creation of a new account can be confusing.
  • response trees. We'd like to make it possible for answers to function in a tree, like Twitter and Reddit, while avoiding their two pitfalls: forcing you to navigate to an answer and then back again, or using indentation to show the hierarchy of answers. The solution we've come up with seems efficient and instinctive, but it remains to be seen whether this feeling will be shared.

Moderation tools

Community moderation can be more refined than those implemented by automated systems or those prescribed by centralized organizations.

But community moderation also means not creating an overly technical moderation interface. Default room permissions are, in theory, a way of avoiding this pitfall, but Element's default permissions have several counter-intuitive repercussions (for example, the right to invite other people to a room).

Eventually, ambitious moderation systems may be envisaged, such as collective moderation by democratic procedure or the appointment of special roles, also subject to democratic procedure.

There are moderation issues inherent in decentralized networks. Typically, we need to guard against spam from servers we don't control, without preventing a well-intentioned person from accessing public chat rooms.

Other current Matrix limitations

Periodically we encounter limitations of Matrix and of libraries and implementations which we rely on, that can require us to contribute to these projects to overcome them.

Logged-out access

We want to enable public channels to be visible without the need to log in. Unfortunately, this possibility has always been constrained by protocol limitations (peeking over federation) and is now made even more difficult by the absence of guest mode in Matrix's new authentication stack.

Search in encrypted messages

Element is currently working on this problem. We'll probably wait until we can use their solution.

Feeds

While Posca doesn't seek to reproduce the feed -centric operation of traditional social networks, it does seem relevant to us to be able to observe on a single page what's going on in different chat rooms (this wouldn't be desirable in chat rooms, but very relevant in microblogging, forum and media sharing operations).

This feature will require significant development, so we plan to tackle it after we've developed the rest of the client.

Future features

After the development of the main functionalities, we also plan to:

  • Offer a customizable group dashboard, with an overview of several rooms;
  • Add organization (e.g. collaborative editing) and decision-making features (Topos project).

Development

Posca is publicly developed on GitLab.com, under the AGPLv3 license.

Posca is regularly redeployed on posca.pm. When we have the resources to host a public Matrix server, we'll host it on the imago.pm domain.

Technical stack

Posca is developed in OCaml, and uses several open-source libraries.

Sponsors

Posca's development is sponsored by the Fondation de France, as part of its Numérique citoyen et responsable mission. We warmly thank them for believing in the relevance of our project, and for their confidence in our ability to bring it to fruition.

GitLab also lets us take advantage of all its excellent features thanks to its Open Source Program.

If you would like to make a financial contribution to Posca's development, please don't hesitate to support us.

  • Contact
    • contact@technostructures.org
    • (EN) #technostructures-en:matrix.org
    • (FR) #technostructures-fr:matrix.org
  • Social
    • @technostructures@chaos.social
    • @technostructur
  • Code
    • GitLab
    • GitHub