Finally, something that outright says that its intent is to be a discord alternative. So many platforms try to sell themselves on some other feature, rather than just being open source and self-hostable. So many things, like Matrix, come close, but lack key components to really competing, such as voice channels rather than calls.
The whole "matrix doesn't have voice channels" thing is a bit frustrating, because... in Element, you can hit the voice or video call button in any channel (not just voice channels!) and it will spin up a voice/video conference in that channel. If you then switch channel, you'll stay in the original conference, unless you drop and rejoin the new one.
I think that's basically precisely the same capability as you get in Discord - except in Discord you can switch between the 'voice rooms' by clicking on them in the room list, rather than 'opting in' to the one in your current room. Also, you can do toggle mute via hotkey (which we have a draft for at https://github.com/matrix-org/matrix-react-sdk/pull/2280), but this is surely a bonus feature.
So, am I right in saying that Element effectively has voice/video rooms today - it's just that the UI is very subtly different to Discord? Or am I completely misunderstanding something fundamental about Discord's voice rooms?
I use Discord and Element/Matrix exclusively, and have groups of friends that use both. They always gravitate towards Discord for voice. I think there's a couple small reasons that kind of add up
1. When there's an active call going, you can't see who's in it unless you join. It's just this ominous box with some unknown number of participants, and it creates this feeling of "should I join them? Am I interrupting? What's going on in there?". In discord, being able to see who's in a room and even who's talking goes a long way in removing that little anxiety.
2. As others have said, having the voice channels listed as their own room, showing the current participants, that you just one-click-to-join feels different. For whatever reason it feels less like you're joining a conference call and more like you're just popping in and out. I can't fully explain why, but it does.
3. The jisti widget is pretty janky. It doesn't really size correctly, the text overflows, and it general it just doesn't feel native.
I've been using, self hosting, developing for and prosthelytizing Matrix for many years now. It started out rough, has steadily gotten better, and now I think in many ways surpasses other chat services. But the voice just doesn't quite do it.
The difference is that Discord voice chats work like "meeting rooms".
I don't want to call everyone in a channel, I want to see who's already hanging around and join them on a whim. It's not really "calls" per se as you don't actually call anyone and they're not coupled to actual text conversation channels.
That's the big UX difference, and it's a big deal for gaming and more casual communities with many participants.
Proper Push-To-Talk with global hotkey is one of those features that doesn't seem important but when you need it (organizing Raids in games, big meetings, etc) it makes a world of difference. That and lack of click to join voice rooms is definitely making it harder to move gaming groups over.
It's an absolute must have for gaming. Near useless without it. I suspect some of the other features that are 'almost there' in fact are deal breakers in some use cases.
The real reason so many people use discord is the network effects. My friends and I joined discord really late in the game but for various reasons we eventually needed it. Eg, game development discussion groups and eventual marketing, or your weekly dnd group uses it, school, etc
I hope this succeeds but it’s going to be hard to take market share. I hope the signup flows and Ux are really smooth, foss software is often pretty hard to get started with for non technical people
Just wanted to point out that Matrix is getting native voice/video calls (for multi people, it already works with 1:1 calls) soon, as well as voice rooms (they've already been designed and the design shown off, just not implemented yet).
The subject line of this hacker news story says that's the intent. I just found 0 occurrences of the string 'discord' on the linked homepage and also its main github repo page. Is the project actually claiming that's its intent?
Also working on a Discord alternative, albeit my project is a decentralized version — neat to see the space has traction. One thing I couldn’t quickly surmise: it looks like your services are centralized and neither servers/spaces (whatever terminology you’re using for logical groupings of communities) nor DMs have support for encryption. Do you have plans to support this? I don’t mean to ask this as a FUD spreader, I just am curious how you differentiate from Discord aside from being open source, and similarly, how you intend to ensure your offering stays open source in perpetuity?
Curious why you decided to use MongoDB as opposed to HBase or Cassandra? Discord moved away from MongoDB because its sharding is “complicated to use and not known for stability.” Are these issues not relevant anymore?
HBase is asking for operational pain. Brownouts of region servers, Hadoop dependencies and a million knobs to tune. Add kerberos and that's the road to hell.
Hi, one of the developers here, there was no specific reason why we went mongo at the start, but there have been talks to move to a different database if needed. Currently mongodb is fine for us.
Just want to suggest that if you're interested in doing this in the future, some investment in defining interfaces up front is worth doing. I took a quick look at the codebase and it looks like mongo is "in there pretty good"[0] without any abstraction to make it easily shimmable.
Just a little specification around the that interface (Trait) will go a long way to making other backends possible and should make it much easier to know and manage the API contract a capable database must provide.
Especially interesting as they intend to support a matrix bridge: https://revolt.chat/roadmap#checkbox40. It seems like it would be easier to just use Matrix "natively" and then you also have a mostly-working Discord bridge for free.
Plus the likely value here is largely the client, so you can consider reusing, or at least building on top of an existing matrix server.
On the other hand, matrix was explicity designed with bridging in mind, and if this is designed to have a good matrix bridge natively, it'll probably work pretty well without having to stay up to date and without having to implement the full matrix spec.
Hi, one of the revolt developers here, we wanted something contained and selfhosted instead of something federated, see https://developers.revolt.chat/faq/federation on why we dont plan on adding federation
Suggestion: lift yourself up without tearing others down. Remove the comments at the end about Matrix leaving a sour taste in your mouth and being buggy: the reasons on this link are sound, engage your audience with all positive energy.
Can't hate you for being opinionated, and I appreciate that you drew a line somewhere.
However, saying that 'nobody actually wants it' is at the very least a little disingenuous. Transitioning to self-hosted and distributed systems is totally the way to go, but we're inevitably going to run into a systems problem. IRC struggled to reach the mainstream because of how fractured it was, and if you don't do anything to address that you're liable to run into the same issue again.
> From personal experience, I’ve generally found federated protocols to not be suitable for real time communication, Matrix is incredibly buggy at times and it’s left a sour taste in my mouth.
Not sure this is a good reason for not adding it, Element is not buggy at all.
There's not much (any ?) open-source self-hostable good slack/discord-like apps. Open source projects usually focus on federation and/or encryption when Revolt focus on UI/UX. If you're looking for a free software that just works, with good UI and you don't care for encryption, that might just be the best option out there.
I'm not sure you can find anything more convincing.
> Matrix is incredibly buggy at times and it’s left a sour taste in my mouth.
Speaking as project lead for Matrix... I can see where this is coming from. Were we doing Matrix from scratch again, we'd have a smaller scope and polish each feature more before releasing and moving onto the next thing. However, we're very aware of this, and these days do almost nothing else other than polishing the current codebase - for instance, Synapse's RAM usage has dropped enormously (https://twitter.com/matrixdotorg/status/1434912387933560837) - all the main serverside bottlenecks have been removed; we're working on speeding up joins enormously; Element's performance is improving massively; we're working a complete rethink of the client-server sync protocol to ensure that only the bare minimum data is ever synced to clients by default. The only new feature work we have on the horizon is exiting Spaces (groups of rooms) from beta, and adding Threading. Otherwise, it's "just" a matter of fixing remaining E2EE bugs; reworking E2EE onboarding UX, and lots and lots of polish.
Critically, *NONE* of these bugs are due to federation or decentralisation. Ironically, the federation bit of Matrix is one of the most robust bits these days - after we spent ages polishing it in 2018-2019 to fix bugs in the merge resolution code. So I think the...
> Federation and Discord-style protocols are inherently incompatible
...assertion in the revolt FAQ is completely false, and Matrix already disproves it. Residual bugs in Matrix implementations are more thanks to the complexity of federation/decentralisation/encryption sucking a lot of energy away from the more business-as-usual things which you'd focus on if building a Revolt/Rocket/Mattermost style thing.
Anyway: Revolt looks cool, and we wish them the best, and hope that they will indeed bridge into Matrix in future, which is honestly quite a good compromise - https://matrix.org/blog/2020/12/07/gitter-now-speaks-matrix#... is the guide to follow to rapidly plug an existing chat system into Matrix, much as we did with Gitter :)
Alternatives are always a great thing but I wonder already about survival of this application. Were you guys thinking about any monetization plans already or maybe you going to ask community for support, or you have other ideas if of course such will be needed?
Also, the scrollbar on roadmap page in desktop Vivaldi version doesn't seem to be doing anything.
500 isn't really asking for much, Signal does up to 1,000 in a group using standard direct messaging encryption (client side fanout). Whatsapp uses a shared hash ratchet and just spins up new keys when someone leaves, this allows it to do 10,000.
Discord gets to 25,000 active users before they move to throwing resources at the problem for a hard max of 500,000 total users able to join (but not be active at once, that number is a little fluffy) so it doesn't seem e2ee is really slamming the breaks on scaling vs how far you could normally get.
Finally if you allow tying and verifying to real world identity and don't require forward secrecy then the encryption side of the problem is no more difficult than PGP.
I hope this goes somewhere!
I think that's basically precisely the same capability as you get in Discord - except in Discord you can switch between the 'voice rooms' by clicking on them in the room list, rather than 'opting in' to the one in your current room. Also, you can do toggle mute via hotkey (which we have a draft for at https://github.com/matrix-org/matrix-react-sdk/pull/2280), but this is surely a bonus feature.
So, am I right in saying that Element effectively has voice/video rooms today - it's just that the UI is very subtly different to Discord? Or am I completely misunderstanding something fundamental about Discord's voice rooms?
I use Discord and Element/Matrix exclusively, and have groups of friends that use both. They always gravitate towards Discord for voice. I think there's a couple small reasons that kind of add up
1. When there's an active call going, you can't see who's in it unless you join. It's just this ominous box with some unknown number of participants, and it creates this feeling of "should I join them? Am I interrupting? What's going on in there?". In discord, being able to see who's in a room and even who's talking goes a long way in removing that little anxiety.
2. As others have said, having the voice channels listed as their own room, showing the current participants, that you just one-click-to-join feels different. For whatever reason it feels less like you're joining a conference call and more like you're just popping in and out. I can't fully explain why, but it does.
3. The jisti widget is pretty janky. It doesn't really size correctly, the text overflows, and it general it just doesn't feel native.
I've been using, self hosting, developing for and prosthelytizing Matrix for many years now. It started out rough, has steadily gotten better, and now I think in many ways surpasses other chat services. But the voice just doesn't quite do it.
I don't want to call everyone in a channel, I want to see who's already hanging around and join them on a whim. It's not really "calls" per se as you don't actually call anyone and they're not coupled to actual text conversation channels.
That's the big UX difference, and it's a big deal for gaming and more casual communities with many participants.
Proper Push-To-Talk with global hotkey is one of those features that doesn't seem important but when you need it (organizing Raids in games, big meetings, etc) it makes a world of difference. That and lack of click to join voice rooms is definitely making it harder to move gaming groups over.
It's an absolute must have for gaming. Near useless without it. I suspect some of the other features that are 'almost there' in fact are deal breakers in some use cases.
I think you are. Think back to messengers like ICQ or MSN, they had a group chat feature. It's like comparing that to IRC.
I personally use a separate mumble (and a teamspeak) server, instead of discord.
I hope this succeeds but it’s going to be hard to take market share. I hope the signup flows and Ux are really smooth, foss software is often pretty hard to get started with for non technical people
Just a little specification around the that interface (Trait) will go a long way to making other backends possible and should make it much easier to know and manage the API contract a capable database must provide.
[0]: https://github.com/revoltchat/delta/blob/master/src/database...
As someone who has administered too many MongoDBs, those are some famous last words.
Plus the likely value here is largely the client, so you can consider reusing, or at least building on top of an existing matrix server.
However, saying that 'nobody actually wants it' is at the very least a little disingenuous. Transitioning to self-hosted and distributed systems is totally the way to go, but we're inevitably going to run into a systems problem. IRC struggled to reach the mainstream because of how fractured it was, and if you don't do anything to address that you're liable to run into the same issue again.
Not sure this is a good reason for not adding it, Element is not buggy at all.
Dead Comment
As if the world needs yet another slack-like.
xkcd_15_competing_standards.png
[0]: https://developers.revolt.chat/faq/why_new
You mean another IRC-like? :)
> Matrix is incredibly buggy at times and it’s left a sour taste in my mouth.
Speaking as project lead for Matrix... I can see where this is coming from. Were we doing Matrix from scratch again, we'd have a smaller scope and polish each feature more before releasing and moving onto the next thing. However, we're very aware of this, and these days do almost nothing else other than polishing the current codebase - for instance, Synapse's RAM usage has dropped enormously (https://twitter.com/matrixdotorg/status/1434912387933560837) - all the main serverside bottlenecks have been removed; we're working on speeding up joins enormously; Element's performance is improving massively; we're working a complete rethink of the client-server sync protocol to ensure that only the bare minimum data is ever synced to clients by default. The only new feature work we have on the horizon is exiting Spaces (groups of rooms) from beta, and adding Threading. Otherwise, it's "just" a matter of fixing remaining E2EE bugs; reworking E2EE onboarding UX, and lots and lots of polish.
Critically, *NONE* of these bugs are due to federation or decentralisation. Ironically, the federation bit of Matrix is one of the most robust bits these days - after we spent ages polishing it in 2018-2019 to fix bugs in the merge resolution code. So I think the...
> Federation and Discord-style protocols are inherently incompatible
...assertion in the revolt FAQ is completely false, and Matrix already disproves it. Residual bugs in Matrix implementations are more thanks to the complexity of federation/decentralisation/encryption sucking a lot of energy away from the more business-as-usual things which you'd focus on if building a Revolt/Rocket/Mattermost style thing.
Anyway: Revolt looks cool, and we wish them the best, and hope that they will indeed bridge into Matrix in future, which is honestly quite a good compromise - https://matrix.org/blog/2020/12/07/gitter-now-speaks-matrix#... is the guide to follow to rapidly plug an existing chat system into Matrix, much as we did with Gitter :)
Really? I wonder how Rocket.Chat federation overcame this "inherent incompatibility"
https://docs.rocket.chat/guides/administration/administratio...
Well, yes, it is honest, but it also is disturbing - which other well-known network principles were unknown to them?
Also, the scrollbar on roadmap page in desktop Vivaldi version doesn't seem to be doing anything.
[1] https://revolt.chat/roadmap
Discord gets to 25,000 active users before they move to throwing resources at the problem for a hard max of 500,000 total users able to join (but not be active at once, that number is a little fluffy) so it doesn't seem e2ee is really slamming the breaks on scaling vs how far you could normally get.
Signals approach https://signal.org/blog/private-groups/
Whatsapps approach https://scontent.whatsapp.net/v/t39.8562-34/122249142_469857...
Finally if you allow tying and verifying to real world identity and don't require forward secrecy then the encryption side of the problem is no more difficult than PGP.
Dead Comment