pleroma.debian.social

pleroma.debian.social

This is what it feels like in most of the chat discourse when, after carefully listening to the requirements to speak to them, I mention as a possibility.

src: https://poorlydrawnlines.com/comic/mad/

Person wearing a green shirt: I'm mad!
Person wearing a blue shirt, holding a folder: Here's a solution.
Person in green shirt, igniting the folder: I don't want a solution!
Person in green shirt: I want to be mad.

@nivex Does XMPP have multi-channel groups now? I would love to be able to offer my XMPP server as a solution to the unfortunately-Discord-using communities I am currently in. Last I checked it only had group chats which were a single channel each. (For the record, Matrix's implementation is a mess because a "space" is just a bundle of actually-separate group chats.)

@alilly There was discussion in the XSF MUC just a few hours ago about defining the standard(s) for spaces. I wasn't paying too close attention to know if what they're talking about meets your criteria.

@nivex Okay, well, you should be aware this is a showstopper requirement for a lot of Discord groups. Most have many channels and would be very frustrated if they were all condensed into a single chat.

@alilly Given how prolific domains are nowadays, a channelX@example.com MUC feels like it would map nicely to channelX in the example Discord server. But yes, if that sort of spaces UI is a hard requirement I refrain from suggesting it at the moment.

@alilly @nivex

Could you explain to me, what Discord groups and channels are?

I wonder, if the equivalents were spaces and MUCs (= rooms)?

Anyway, spaces are not yet implemented in XMPP, but some devs are wokring on it, esp. by @movim.

@debacle @alilly @nivex @movim tighter spaces, had the same conversation with a friend I was trying to move and essentially bundled together MUCs, mostly akin to the gajim way of organising stuff
replies
0
announces
0
likes
1

@debacle @nivex I use the word "group" generically here. Discord calls them "servers" (hopefully you can see why I try to avoid that term) but some systems have apparently called them "guilds".

A "channel" is like an MUC except it doesn't have a membership list of its own; it is a stream of messages that have been sent to it, usually on some specific topic (common example channel names include general, announcements, off-topic, pet-pictures, memes). A "group"/"guild" is, roughly, a set of channels that have a common list of members and are presented to the user as a unit.

In the Discord user interface, you always have a current channel in each "server" (group/guild) you are in, and you have a current server (these are client-side state). Normally, the main area of the screen shows messages in your current channel of your current server. Channels can be sorted into categories (but no subcategories) and both categories and the channels within them have a defined order in which they are seen by all members of the server, chosen by the server's admins (not most-recent order). A channel can be moved between categories, or repositioned within its category, or the categories can be repositioned relative to each other, but channels and categories are permanently bound to the server in which they were created and cannot be moved (though they can be deleted or renamed). Discord users rarely think about channels as entities in and of themselves; a channel is thought of as an inseparable part of its server.

There are some nuances (Discord allows members to have one or more "roles" assigned to define their permissions, and the permissions can among other things grant/deny read/send/delete on specific channels, so in some configurations not all members can actually access all channels), but the basics are: A group should ideally be a set of MUCs which you join/leave together (at least by default), and which exists as a distinct entity clients can easily present in the UI as the parent or container of those MUCs. It should /not/ be like a Matrix space, where each room in the space has to be separately joined (this would be intensely annoying in groups with 10s of channels of which most are relevant to everyone, like many Discord groups have), and where a room can be part of multiple spaces. I'm ambivalent as to Matrix's hierarchical spaces; a single level of categories would probably be enough, and it's what Discord users are currently accustomed to.

I should note that, despite having an XMPP server which I have used some in the past, I have only a basic knowledge of XMPP details, so my XMPP-related terminology may be imperfect and I do not know how difficult it would be to adapt existing protocol features to support this kind of model.

There is no reason XMPP should adopt Discord's model of multi-channel groups exactly, but that model has proven to be relatively well-suited to large IM-based community spaces and especially when people are specifically seeking to get away from Discord in particular it would be a good idea to emulate it where it does make sense, and I think the key concept from it is "set of chats with common membership, presented as a unit".

@alilly @nivex

Many thanks for your elaborate answer!

I'm sure, that @edhelas, @nicoco, @Goffi and other interested people interested in implementing that in Jabber/XMPP are already aware of those concepts.

As I understand, "XEP-0503: Server-side spaces" is still WiP and might change significanly.

https://xmpp.org/extensions/xep-0503.html