I personally don’t have the technical knowledge, time, or energy to take on something like this — but I was curious:
Since Matrix, XMPP, etc. already support most (if not all) of the features that Discord offers — text, voice, video, threads, bots, roles, federation, etc. — would it theoretically be possible to just replicate Discord’s UI and UX and build it on top of the Matrix or XMPP protocol instead of starting from scratch?
I mean, sure, there’d be some challenges with existing third-party clients, like
Matrix:
Element X,
Nheko,
Cinny,
FluffyChat,
XMPP:
Aparté
AstraChat XMPP Client
aTalk
Beagle IM
Bruno
Chat-O-Matic
Chatty
Conversations
Cheogram Android
but if developers and users agreed to focus on a stack — say, Matrix, XMPP, or both — couldn’t there a “Discord-like” ecosystem of compatible apps and communities?
Basically: could an open-source “Discord alternative” be built using Matrix or XMPP as the backend rather than trying to reinvent the wheel?
What are the technical or social barriers to doing that?
Slack is built on top of XMPP, so yes absolutely.
Then how come nobody has ever attempted it?
Because group chat is already available in pretty much ever XMPP client?
Have you seen xmpp clients?
looks nice, a bit more like discord than Element for sure.
Does Commet have an app?
I checked the link, but I didn’t see anything
Cheers
I know it’s not what your asking but I never used Discord because it’s proprietary and, my friends and I stayed on IRC.
Now IRC is usually just text but we wanted something a bit more modern so we settled for The Lounge. It’s a web IRC client that can display and host videos and images. It can also keep some of the channels history. It brings some modernity to IRC, as we can paste images directly onto a channel.
There’s another similar client called Convos. Apparently it can also do video/voice chat but I never tried.
So I’m not sure we’d switch to an XMPP based protocol, as IRC web clients pretty much just already works for us instead of Discord.
https://stoat.chat/ (previously Revolt, is specifically an open source discord)
Stoat made a small mention in their name change blog that there’s a big update in the pipeline to bring in voice chat and screen sharing, two of the fundamental functions used by every Discord user that I know. If Stoat manages to bring those two features in at a similar parity to Discord then it’ll be a legitimate candidate for a Discord replacement.
Unfortunately, from my research most other platforms either don’t have voice and screen share at all or they do but it’s implemented in a way that’s far from optimal.
What protocol is it based on?
Not E2EE though
I say XMPP below as that’s what I’m most familiar with, but you can replace it with Matrix or any other open federated network :)
would it theoretically be possible to just replicate Discord’s UI and UX and build it on top of the Matrix or XMPP protocol instead of starting from scratch?
It’s complicated. I agree that copying the UX of the proprietary apps to provide a familiar experience would help get some adoption. That way we don’t have to convince someone to switch network and user experience at the same time.
If we had an XMPP-based Discord clone, WhatsApp clone, Telegram clone etc., all interoperating with XMPP under the hood, I think it would be much easier to go to each friend and get them to switch to the clone of the service they like the most. And, everyone could still talk to each other no matter what UI they were using.
I think the reason why Conversations is so successful, compared to other clients, is that it started essentially as a clone of Hangouts.
but if developers and users agreed to focus on a stack
There’s the problem, though. Developers are never going to agree on a single solution :)
There are limited numbers of developers really familiar with the nuts and bolts of XMPP, and they are already swamped maintaining the existing software.
I think this can be solved though by separating the UI from the backend as much as possible. If experienced XMPP devs work on libraries, and experienced UI devs work on replicating proprietary UIs, someone can then wire whatever frontend and backend together that they want.
I think this can get you 80% of the way there. The last 20% will be challenging though, as you won’t be able to replicate the UX exactly: the experience you want to provide will clash with the way the existing network already works.
examples of network differences
For example, XMPP has the concept of anonymous public rooms, where you can’t see someone’s identifier. Most public rooms are set up like this. You can’t start an encrypted conversation with someone from a group without exchanging jids first.
But, someone who’s used to WhatsApp will expect to just be able to click on someone in a group chat to start an encrypted conversation with them. That’s just not possible in XMPP, in the already existing rooms. So, although the UI will look the same, there will definitely still be confusion around the edges.
Likewise, WhatsApp expects everyone to be contactable by phone number. But, if you have a friend who signed up to XMPP using a discord-like app, the phone number won’t be their primary identifier. So users could get confused why they cannot contact their friend when they thought that using this WhatsApp clone would work the same way.
So, in some ways, it’s cleaner to just provide a completely different experience and say “this is what XMPP is”.
What I’m not sure about, is how important that last 20% is. On one hand, a user might like that the app seems to function like one they’re used to. But then, I can see them having less patience and saying “this is broken” in the areas it doesn’t work like they expect. I feel they are likely to be less forgiving about the bits that aren’t the same, if everything else is a replica. And, they won’t understand the nuance that it’s more difficult to have a consistent experience across different clients and servers, they will just say “this app is broken and I’m going back to the proprietary one”.
Meanwhile, the status quo, where we say “you have to switch networks and also learn how XMPP differs from everything else at the same time” has its own problems, because people just do not feel comfortable changing so many things at once. So long story short, it’s tricky :)
the Movim XMPP client could probably be modified to replicate discord, as it’s already close.
They are working on it, the leas dev is working with the lead Dev of slidge to propose a new Spaces protocol to enable “sub-channel” type functionality.








