(Not a leading question. I haven't used Discord/Matrix/etc. more than a handful of times and don't know what I don't know.)
(Not a leading question. I haven't used Discord/Matrix/etc. more than a handful of times and don't know what I don't know.)
Or maybe Matrix has some issue I don't know about, which is a more interesting question. Element seems to have both video and audio chat, but leaves a lot to be desired on the UI side sometimes. I can definitely imagine the more the merrier when it comes to open source UIs for open protocols.
Another thing that can trip people up or make Element hard to use in a company is that the Element clients have certain defaults. For example, the video calls by default use a pre-defined Jitsi instance. Other aspects also use external service by default, even if connected to a self-hosted server. That is pretty much a nightmare if there are compliance/privacy concerns and a company wants to host everything in house.
What's really pleasant is how verbose and easy to understand the matrix protocol is. It's quite easy to create bots, send messages over the API etc. So it can be easily integrated into other business processes.
There's the Spaces [0] API but it's not really meant for creating "servers" (servers as Discord labels it, meaning a top-level room or thing that contains children voice or text rooms) and as such there's no easy way to have any type of per-"server" RBAC or other permissions that Discord's model provides because of the Room + Power Level paradigm Matrix follows.
There's also difficulty with enforcing recursive operations, e.g. in Discord you can just kick/ban somebody and they are removed from the top-level (Server) and all child channels- but there is not really a way to perform any such operations with Matrix without a lot of hacking around and writing custom app services.
[0] https://spec.matrix.org/latest/client-server-api/#spaces
A) you need to create an account for the bot and provide an access token (which is cumbersome to obtain). In Discord that type of moderation of users works ootb.
B) There is no mechanism for role-based permissions. In Discord, you can create a role and assign specific permissions to that role which can control different rooms, etc. in your server. That is not possible in Matrix currently even with Mjolnir or custom app services because of how power level mappings work.
It's a problem I'm interested in solving but it would require MSCs drafted to alter the Matrix spec to create a new permissions model and will have extremely far reaching implications for homeserver implementations.
[0] https://user-images.githubusercontent.com/48614497/159062202...
Both are very important for replicating Discord's low friction. Opening a full window when it's just a voice channel anyway is also distracting and increases friction.
It looks like it's a b2b app anyway
Element is hardly b2b lol.
---
[0]: https://matrix.org/
A good starting point if you're tech literate is this: