So You Want To Write An Open Source Discord Replacement
-
@0xabad1dea things you need : enough furries on the team?
@archiloque @0xabad1dea transfem furries!
- They may also make reproduceable builds on #nixOS for all OSes whilst at it...
-
@0xabad1dea@infosec.exchange discord has multiparty end to end encryption so you do actually need this for voice and video data
@froge @0xabad1dea or you could just seperate #Chat and #Voice functionality into smaller tools...
-
@nojhan @0xabad1dea considering where we are and who you're replying to, maybe the source repo would be a better place to direct people?
(It's on github, but things could be worse)
@RandomDamage @nojhan @0xabad1dea Sadly, #Mattermost is only "open core" and thus #OpenWashing...
-
@maswan @0xabad1dea Two cats and a French cat? Heck yeah!
@catsalad @maswan @0xabad1dea meanwhile anyone who never used #discord is laughing in #IRC, #Mumble and #JitsiMeet...
-
@catsalad @maswan @0xabad1dea meanwhile anyone who never used #discord is laughing in #IRC, #Mumble and #JitsiMeet...
-
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 itQuasi-federation (each 'server' is controlled by a single instance that acts as the final authority on What Happened) is very useful to avoid lock-in, though;
-
@ury easy export and ability to self-host should handle these goals, or do you also want server/instance interoperability
-
@0xabad1dea as someone who uses discord mostly as IRC but with emojis and images... What *are* the main reasons people use discord? Like this seems like there should be so many open alternatives, but I'm obviously missing something.
-
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 it@0xabad1dea for a minimum viable replacement, sure you donโt need end to end encryption. But I hope that someone can design E2EE seamless enough that users barely notice, so we can avoid things like Discord selling users out to the feds for making fun of Charlie Kirk.
-
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 it@0xabad1dea You know what I would *really* like? A modernised Usenet.
-
@RandomDamage @nojhan @0xabad1dea Sadly, #Mattermost is only "open core" and thus #OpenWashing...
@kkarhan @nojhan @0xabad1dea charming.
-
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.
@enejjohhem @0xabad1dea @isotopp
Aber bei WhatsApp klappt es doch auch...

-
@0xabad1dea @gabboman if you don't make it distributed, you also have to host the entire bloody thing - which gets expensive once you add video chat and/or screensharing at any meaningful scale
@ratsnakegames @0xabad1dea @gabboman I'm not sure it's true that adding video/screensharing would significantly increase cost. I think the centralized service could facilitate establishing the network link between the parties and have them send the feed more-or-less directly. But I may simply be mincing words here - that could be interpreted as making it distributed.
-
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 it@0xabad1dea (mute acknowledged; replying anyway) AFAICT, there are many jabber clients and servers that fulfill that checklist and have for ages. It's also got a bunch of the nice-to-haves, and options for most of the other features.
IMO, Pidgin did a terrific job as a client, and there is support for voice. Screen sharing is available but it seems there were some security issues with some of those plugins. FWIW, I'm not a fan of the large window interfaces used by Teams, Slack, etc...
-
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 it@0xabad1dea @cadey oh..... so I do not need to write the Operating System.... that makes things a bit easierโฆ..

The largest issue that overrules all technical work is marketing: you need users, you need the first several thousands to not pay, but you do not need to have ads so that they learn about it and have those ads everywhere so that people know that your tool exists.
PS: For those that do consider doing one with e2ee: MLS (RFC 9750) now exists

-
@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