So You Want To Write An Open Source Discord Replacement
-
@krapp @0xabad1dea I think when she says no federation she means that each organization hosts its own server which functions completely independently of others. Since discord is divided into different "servers" which you have to switch between, its fine if its replacement makes you switch between different REAL servers in order to message different groups.
@scunneen @krapp @0xabad1dea So basically - The servers are fine if they do not communicate, the clients just need to be capable of swapping between server instances? Overall sounds like it could work.
That *does* open up a weird UX setup though that the DMs between User A and User B are bound to a specific server.
So suddenly you can have *multiple* DM conversations with the same User as long as you both share multiple servers. -
@scunneen @krapp @0xabad1dea So basically - The servers are fine if they do not communicate, the clients just need to be capable of swapping between server instances? Overall sounds like it could work.
That *does* open up a weird UX setup though that the DMs between User A and User B are bound to a specific server.
So suddenly you can have *multiple* DM conversations with the same User as long as you both share multiple servers.@Isofruit @krapp @0xabad1dea Yeah, that could be weird. However I donβt think person to person DMs are the main use case of Discordβ signal works well enough for that. My impression of discord is that servers are generally created for some sort of social groupβ a college club, all the students in a specific class, a Minecraft server, etcβ to be a place to talk about things relevant to that group or activity.
-
@Isofruit @krapp @0xabad1dea Yeah, that could be weird. However I donβt think person to person DMs are the main use case of Discordβ signal works well enough for that. My impression of discord is that servers are generally created for some sort of social groupβ a college club, all the students in a specific class, a Minecraft server, etcβ to be a place to talk about things relevant to that group or activity.
@Isofruit @krapp @0xabad1dea I might not include DMs as a feature and instead have people manually create a chat with a single person. This would be annoying but it would make it clear that the conversation is tied to a specific server.
-
@Isofruit @krapp @0xabad1dea I might not include DMs as a feature and instead have people manually create a chat with a single person. This would be annoying but it would make it clear that the conversation is tied to a specific server.
@scunneen @krapp @0xabad1dea As someone that does use discord I'd say private chats make up about ~20-30% of my usage, the rest being VC and group chats. So I'd agree it's not the *main* use-case, just that it's also *a* major usecase.
Another thing that might get lost would be server discovery.
A client could still work if "add server" means pasting in a server-URL somewhere, you could even "mitigate" it by hard-coding the major server instances, it just adds a limitation to be aware of. -
@scunneen @krapp @0xabad1dea As someone that does use discord I'd say private chats make up about ~20-30% of my usage, the rest being VC and group chats. So I'd agree it's not the *main* use-case, just that it's also *a* major usecase.
Another thing that might get lost would be server discovery.
A client could still work if "add server" means pasting in a server-URL somewhere, you could even "mitigate" it by hard-coding the major server instances, it just adds a limitation to be aware of.@Isofruit @krapp @0xabad1dea How do you discover discord servers other than someone already on the server giving you an invite link
-
@Isofruit @krapp @0xabad1dea How do you discover discord servers other than someone already on the server giving you an invite link
@scunneen @krapp @0xabad1dea
Have an interest and desire to join a community somewhere for that interest.With the discovery functionality such as that from matrix and discord I found:
- Angular Discord Server
- React Discord Server
- Nim Discord Server
- "Shape of Dreams" Discord Server (Gaming)
- Nim Matrix channel
- GTK Matrix channel
- Accessibility Matrix Channelsetc.
These do actually have a fairly valid usecase.
-
@scunneen @krapp @0xabad1dea As someone that does use discord I'd say private chats make up about ~20-30% of my usage, the rest being VC and group chats. So I'd agree it's not the *main* use-case, just that it's also *a* major usecase.
Another thing that might get lost would be server discovery.
A client could still work if "add server" means pasting in a server-URL somewhere, you could even "mitigate" it by hard-coding the major server instances, it just adds a limitation to be aware of.@Isofruit @krapp @0xabad1dea Another option might be to do federation but a very simple form of federation where when using a chat on another server, your server simply acts as an intermediary between you and the other server, authenticating you and forwarding requests and responses between you, without storing any data from the other server.
-
@scunneen @krapp @0xabad1dea
Have an interest and desire to join a community somewhere for that interest.With the discovery functionality such as that from matrix and discord I found:
- Angular Discord Server
- React Discord Server
- Nim Discord Server
- "Shape of Dreams" Discord Server (Gaming)
- Nim Matrix channel
- GTK Matrix channel
- Accessibility Matrix Channelsetc.
These do actually have a fairly valid usecase.
@Isofruit @krapp @0xabad1dea Interesting.
-
@0xabad1dea To clarify about federation, dozens if not hundreds of projects have tried federation, and there are only two that have actual federation and an actually decent UX.
@november @0xabad1dea Everybody wants federation until they get it.
-
A system with end-to-end encryption has no access to message content on the server because that is literally the definition of E2E encryption.
That means you will never have access to past content β you weren't in the receiver list of a channel when the message was sent, and you won't retroactively get it, because the server cannot add you. You are essentially joining an empty channel or even server.
That also means that the server cannot look into message content, for example to identify and autoban spammers, work on message moderation or otherwise do what anybody would reasonably expect a server to do in terms of safety and abuse control.
It also means that the server cannot provide you with a meaningful server based search at all. Instead the client has to download the content it has keys for and then search locally. That won't happen except on desktop devices, and even there it won't work well.
You could add a server machine user to every message so that search and automoderation would have access to message content. But that means effectively you don't have, and don't need end, and don't want to end-to-end encryption.
Which you don't.
It's not a cool feature, for anybody except the most limited set of users, and these will still hate every second of the experience they are forced to have by their circumstances.
@isotopp@infosec.exchange @enejjohhem@mastodon.social @0xabad1dea@infosec.exchange You could just... not enable encryption in your communities, then. But it should absolutely be an option for vulnerable groups where "no full text search :(" and "no automod :(" are less important than ensuring their own safety.
-
@isotopp@infosec.exchange @enejjohhem@mastodon.social @0xabad1dea@infosec.exchange You could just... not enable encryption in your communities, then. But it should absolutely be an option for vulnerable groups where "no full text search :(" and "no automod :(" are less important than ensuring their own safety.
@0xabad1dea@infosec.exchange @isotopp@infosec.exchange @enejjohhem@mastodon.social like not to get all Political
but we are seeing attempts to backslide on LGBTQ+ rights and censor queer content in many countries around the world. we can't just design another messaging platform that easily hands over conversation logs from "Undesirable" communities to the authorities. -
So You Want To Write An Open Source Discord Replacement
Things you donβt need:
- federation/distributed systems
- multiparty end-to-end encryption
- an entirely new operating system kernel specially designed toβThings you DO need:
- a user interface that is Normal
- the ability to use languages other than English and writing systems other than Latin
- higher standards of user experience than how irc actually works in the real world
- any fucking clue how Discord works and why people use itAye, federation is no silver-bullet against enshittification/EEE tbh (just ask *checks notes* oh, XMPP). Great (ish) if you have 50 niche projects and 10,000 servers on a shared protocol, but even the fediverse barely manages that (and certainly not well). But it also only really protects against the host going all
β users can (in theory) flee the sinking ship (in theory β product finishes may differ from promotional images, terms & conditions apply, users may only seek redress through non-binding arbitration (while stocks last)). But if you're self-hosting and the project goes all "I think I'd prefer the 24ct trim on the next yacht", you're a bit fucked either way tbh (along with everyone else who uses that project/fork/spoon). And before that, you've got to get your 50 niche projects (and 1 or 2 not-niche projects to coalesce around, because let's be real) to agree to a single protocol. Which, at least when twitter went all goose-stepping, AP was already there.
But all we've got now is XMPP and, like, idk lads, we're probably asking a bit much of it to become an actual Discord replacement, even without voice/video. Don't get me wrong, I'd love it to happen, but we're kinda trying to build the runway here while we're already being flung down it at 500kts.
"But I don't want to have a bazillion different accounts on different sites!" tbh I don't give a shit. I have a password manager. What I absolutely do not want, however, is a bazillion different apps. That shit stacks up fast, and I don't really expect the vibe-coding crew to be too circumspect about resource efficiency. "Well then just use a web-browsURK *wheeze*" Any other questions? Not-stupid ones, I mean.
PS: People suggesting things with per-user pricing structures somewhat catastrophically fail to grasp the last point in the OP. -
@0xabad1dea@infosec.exchange @isotopp@infosec.exchange @enejjohhem@mastodon.social like not to get all Political
but we are seeing attempts to backslide on LGBTQ+ rights and censor queer content in many countries around the world. we can't just design another messaging platform that easily hands over conversation logs from "Undesirable" communities to the authorities.@pup @0xabad1dea @isotopp @enejjohhem is there precedent for governments subpoenaing chatroom servers in order to Get pseudonymous queers who aren't planning anything other then the continued existence of the specific community represented by that chatroom? serious question.
-
@pup @0xabad1dea @isotopp @enejjohhem is there precedent for governments subpoenaing chatroom servers in order to Get pseudonymous queers who aren't planning anything other then the continued existence of the specific community represented by that chatroom? serious question.
@pup @0xabad1dea @isotopp @enejjohhem i'm not trying to like attack you with a rhetorical question, one of the communities i'm in is planning for what happens if they migrate to a different service and i need to know if this is something we should be preparing for.
-
W Ryan Wild shared this topic