element-hq / element-meta

Shared/meta documentation and project artefacts for Element clients
67 stars 11 forks source link

Meta-issue: Discordification of Matrix/Synapse/Dendrites (feature request) #1476

Open DonaldTsang opened 5 years ago

DonaldTsang commented 5 years ago

Description

There are at least a dozen issues relating to the design of Riot being too user unfriendly, and that people are suggesting designs similar to established apps like Discord and Slack. (Please post related issues in this page for further discussion)

Issue Types:


I have been a Riot user for about one and a half years, and I would hope for these features to give people a better user experience (features recommended from friends in Discord)

Cross-reference: https://github.com/matrix-org/synapse/issues/4030

ptman commented 5 years ago

At least I have the option to search multiple rooms in riot

ptman commented 5 years ago

Are emoji collections the same thing as sticker packs?

ptman commented 5 years ago

Etherpad is available as a widget

DonaldTsang commented 5 years ago

@ptman I would say emoji collections are like stickerpack but hosted differently. It should be more fluid, room or server-specific and easy to trade (as a standard file), and also add (if you are a mod/admin)

Still, basic community management is not in Riot Android

ptman commented 5 years ago

Reactions: https://github.com/vector-im/riot-web/issues/1357

DonaldTsang commented 5 years ago

@ptman that is good progress... but for the other suggestions those features are equally important. Is it possible to get this on spec?

dali99 commented 5 years ago

Custom server-based and room-based emojis

https://github.com/matrix-org/matrix-doc/issues/1256

Emoji reaction for texts and files (useful for voting)

https://github.com/matrix-org/matrix-doc/issues/441

Automated (non-manual) key sharing

Automating key verification removes the entire point of E2E. https://github.com/matrix-org/matrix-doc/issues/1267 and Cross Signing: https://github.com/matrix-org/matrix-doc/issues/1680 will make it a lot simpler.

Multi-room search

???

Community support

Unsure what you mean here but communities need an overhaul. But here's an interesting issue: https://github.com/matrix-org/matrix-doc/issues/1215

audio chat support

Jitsi is supported in client right now. Could look a bit better but it works.

self-host Mumble room support (tying Mumble with server)

Nothing stops you from hosting a mumble server and using the mumble web UI as a widget.

Radio/Playlist bot support

You could again just make a radio website and have it as a widget.. Or write a jitsi bot, or a mumble bot or what you want to do.

self-host Etherpad/Firepad support (tying *pad with server) self-host Hackmd support (tying Hackmd with server)

Both of these are also widgettable. And you can just add them to the integration manager. Just like you can self host jitsi through dimension.

DonaldTsang commented 5 years ago

@dali99

Automating key verification removes the entire point of E2E.

No it does not when there is a group leader that approves who is within the group. Cross-signing do sound innovative in its own right.

???

Multi-room search (the ability to search all rooms you are in) is a core feature of Discord.

Community Overhaul

The fact still stands that there are certain features within Discord "servers" that needs to applied to Matrix, and it will be good to list them all

Jitsi is supported in client right now.

But it is really bad in mobile

Nothing stops you from hosting a mumble server and using the mumble web UI as a widget.

Please make Mumble and/or SIP as a default widget as their apps works in mobile better.

Both of these are also widgettable. And you can just add them to the integration manager. Just like you can self host jitsi through dimension.

Another one of those times standardization makes things better (at least for those who would like to avoid companies like Google Docs in favor of FOSS hosting)

dali99 commented 5 years ago

@dali99

Automating key verification removes the entire point of E2E.

No it does not when there is a group leader that approves who is within the group. Cross-signing do sound innovative in its own right.

If you don't verify each other keys there is no way to know who wrote the key, or to who you are encryting the message to. A web of trust thing might be neat, but it still requires some amount of verification.

???

Multi-room search (the ability to search all rooms you are in) is a core feature of Discord.

So to make it clear: searching all the rooms you're in for some sort of string? That's not a bad idea.

Community Overhaul

The fact still stands that there are certain features within Discord "servers" that needs to applied to Matrix, and it will be good to list them all A lot of these features are already listed, and its important to realize that matrix isn't discord

Jitsi is supported in client right now.

But it is really bad in mobile

Right, but it's there.

Nothing stops you from hosting a mumble server and using the mumble web UI as a widget. Please make Mumble and/or SIP as a default widget as their apps works in mobile better. No? You can make mumble or whatever you mean by "SIP" default in your client when people hit the call button. Other people can use what Both of these are also widgettable. And you can just add them to the integration manager. Just like > > you can self host jitsi through dimension.

Another one of those times standardization makes things better (at least for those who would like to avoid companies like Google Docs in favor of FOSS hosting)

Google docs is just a default widget in Vector-im's hosted proprietary integration manager which they use on riot.im. When you self-host riot, you will use your own integration manager like for example your self hosted dimension to customize what your default widgets will be. That is the matrix standard way to do this.

Using riot.im you can also just use the custom widget button to add your stuff. Don't confuse riot.im with matrix :smiley:

DonaldTsang commented 5 years ago

If you don't verify each other keys there is no way to know who wrote the key, or to who you are encrypting the message to. A web of trust thing might be neat, but it still requires some amount of verification.

In private Discord servers, people are generally invited by the mod/admin to guarantee trust, and if that gets compromised, they move. In Matrix/Riot constant key-signing becomes annoying, so people would rather prefer Discord.

Google docs is just a default widget in Vector-im's hosted proprietary integration manager which they use on riot.im. When you self-host riot, you will use your own integration manager like for example your self hosted dimension to customize what your default widgets will be. That is the matrix standard way to do this.

Most people will only download apps from an "official site" so you really shouldn't expect people to make alternatives, rather make widgets be more available than ever.

Half-Shot commented 5 years ago

Multi-room search (the ability to search all rooms you are in) is a core feature of Discord.

So to make it clear: searching all the rooms you're in for some sort of string? That's not a bad idea.

image

dali99 commented 5 years ago

If you don't verify each other keys there is no way to know who wrote the key, or to who you are encrypting the message to. A web of trust thing might be neat, but it still requires some amount of verification.

In private Discord servers, people are generally invited by the mod/admin to guarantee trust, and if that gets compromised, they move. In Matrix/Riot constant key-signing becomes annoying, so people would rather prefer Discord.

You obviously don't understand how cryptography works, what you are describing is NOT e2e, so just don't use e2e if you don't want to use e2e. A web of trust system again could be neat. but SOME verification must be done.

DonaldTsang commented 5 years ago

@dali99 I would say it is a different kind of E2E with a "web of trust" based key distribution.

DonaldTsang commented 5 years ago

@Half-Shot another case of bad UI design, since when you want to search all rooms the button is hard to find

ptman commented 5 years ago

@DonaldTsang you could give feedback on the UI in https://matrix.to/#/!XIydWLOEJvcDBKwWKE:matrix.org , but the fact is that the functionality already exists

Half-Shot commented 5 years ago

@Half-Shot another case of bad UI design, since when you want to search all rooms the button is hard to find

Could you precisely describe how the button in the search dropdown labelled "All Rooms" is hard to find? How would you improve it?

DonaldTsang commented 5 years ago

@Half-Shot put the search button outside of the room view, basically next to settings or user/room/community selection.

DonaldTsang commented 5 years ago

Newer issues for Dscordification:

Older issues for Discordification:

skylord123 commented 5 years ago

@DonaldTsang I've been using Jitsi for voice calling my wife and it works like a charm on mobile. They will be adding push-to-talk to riot soon as well ( vector-im/element-web#5993 ). So I think it's fine.

DonaldTsang commented 5 years ago

@skylord123 Jitsi is not good on mobile though, it is very inconvenient due to its lag and resource usage.

DonaldTsang commented 5 years ago

Half-annual report: Discord keeps getting better and better, at this point we should start looking at the RocketChat code base to see how we can make our software more "people-friendly" See https://github.com/RocketChat/Rocket.Chat

trosel commented 5 years ago

@skylord123 The Jitsi mobile app is ok. But the Jitsi plugin for Riot on mobile is highly janky.

tmladek commented 4 years ago

Tag-based user and mod/admins types (similar to Discord)

...

Role and access support

...

Community room sub-categorization and access

for visitor vs club member vs club staff separation

I was looking for an issue for this; not because I want Matrix to be more like Discord, but because I think it makes sense especially given how often Matrix rooms are bridged right now, and separating "virtual" bot users from other services and actual Matrix users would go a long way to preventing clutter and confusion.

DonaldTsang commented 4 years ago

@trosel agreed.

@tmladek I would say that people have put a lot of work to make Discord usable compared to Matrix (since they have more funding)

Viohl commented 4 years ago

So, end of 2019. Any updates on an analogue to discords servers?

trosel commented 4 years ago

@Viohl That's communities. You can use them today, but the plan is to improve them in the future.

DonaldTsang commented 4 years ago

@trosel communities needs to improve UX wise and moderation wise, currently Matrix/Riot is a nightmare to use as a IM alternative to large-scale forum groups.

natrius commented 4 years ago

Btw, Emoji-Reactions to text are already there.

Would love to see the mumble-support, because we could use it then for some gaming communities. Since mumble is slowly getting plugin-read as well, some communities from arma might switch to mumble as well and it would be awesome to have it integrated nice in matrix/synapse/dendrite (even riot?) for communication.

hramrach commented 4 years ago

mumble is quite nice. Better audio quality than all that software telephony and web conferencing tools. The problem is you do need a central mumble server through which all audio passes if I understand the architecture right. That could be quite a bit of bandwidth for servers with lots of users. Even the message data alone can overload matrix.org. P2P solution on the other hand are prone to connectivity issues if your users are behind firewall.

skylord123 commented 4 years ago

P2P solution on the other hand are prone to connectivity issues if your users are behind firewall.

P2P is also prone to people be able to get your IP address. For a while it was pretty common for gamers to add you on skype then DDOS you during games so you would lose (as well as ddos people for other reasons).

nathanfranke commented 4 years ago

Rooms that are part of a community shouldn't show in the Rooms dropdown if the community isn't selected.

Edit: This was implemented in https://github.com/matrix-org/matrix-react-sdk/pull/6497

DonaldTsang commented 4 years ago

@nathanwfranke here is the problem with that idea: Direct Messages, Rooms that have no community, and Rooms that have community are three things entirely. Rooms that have no community can be converted to have a community, which brings flexibility.

nathanfranke commented 4 years ago

@DonaldTsang This issue is about user unfriendliness. Is it worth it to make the system more "flexible" if it means completely ignoring ease of use?

I understand that flexibility is very important. Maybe then there should be an option to move a Room to a community. But forcing this on every user to understand how all of this is supposed to work is silly.

tmladek commented 4 years ago

I would tend to agree - the fact that communities are more or less an optional second-class feature more akin to a kind of metadata, rather than something with proper "weight" like a Discord/Slack server, is not too intuitive and brings confusion. I had quite the trouble explaining this concept even to people who weren't too familiar with (and hence biased by) Discord. (Let alone to people who are, and thus expect Riot Communities and Rooms to have a similar hierarchical relationship.)

I understand the rationale for this, and I also see how it flows naturally from the way rooms are implemented. And I do not advocate for crippling Riot by removing features. However, UI that communicates its purpose well, and nudges the user in the right direction goes a long way, and there needs to be a serious rethinking of how Communities should function within Riot. For instance, clearly marking what Community does a Room belong to (say, in its header) and also marking that a Room does not belong to a Community could help with this confusion already.

Or take hints from how Telegram implemented "Chat Folders" recently, which are actually much closer to how Communities work in Riot (except they're private and cannot be shared) than in Discord - there's an "All Chats" group by default, which looks just the same as the app used to look up until now, and then an arbitrary number of groups which act as filters. https://telegram.org/blog/folders This also communicates quite clearly what kind of relationship do groups and folders (communities) have.

natrius commented 4 years ago

I don't get how this is 'complicated'? Put 5 rooms in a box and then you have a collection. The box is a community, just a collection of rooms. It just gets a bit complicated when you have to explain a room can be in 2 communities at the same time. "A community is just a collection of rooms.".

Or I'm misunderstanding something here.

HansJK commented 4 years ago

Most people that use communities are going to look at it as a Discord server or Slack organisation. So they get confused when they realise that it's just a simple folder. You can talk about how the current communities UX should have been designed, but the right way forward is to just redesign the whole community feature aka communities 2.0, where it have all the features we have come to expect from Discord and Slack. This includes differentiating the rooms that belongs to a community, more flexible and powerful moderations tool that's role based, and have the member list be based on the community instead of each individual room.

DonaldTsang commented 4 years ago

Agreed, Riot2020 (yeah that is what I am nicknaming it) should aim their goals directly at Discord and Slack... in both Speed and Usability (since people have complained that Synapse cannot hold much weight).

I would also like @Half-Shot to comment on the issue with fresh eyes.

natrius commented 4 years ago

No, no, no, really not. This should not be a simple discord or slack clone.

Communities are already getting a big faceover and we will see if it will be in RiotX for example. https://github.com/matrix-org/matrix-doc/pull/1772

HansJK commented 4 years ago

We are not talking about a simple Discord and Slack clone, in fact if we were to completely copy Discord's servers, communities would become much more advanced and usable. We should take the aspects of these platforms that people love about them and made them so big and popular to begin with. Of course there's many thing Riot could do better, like having the ability to merge communities, or move one community room/channel to another community. A room could even be shared across two or more communities.

I have a fairly large Discord server that's bridged to a Matrix community. When moderating these two platforms, I really see how much more advanced Discord servers are than Matrix communities. I would like to have the best of both worlds.

DonaldTsang commented 4 years ago

@natrius @HansJK not clone of Discord just because, but rather a Discord+

We should take the aspects of these platforms that people love about them and made them so big and popular to begin with

Which is a good way of putting it when I have the concept of Riot2020 or Discord+

Of course there's many thing Riot could do better, like having the ability to merge communities, or move one community room/channel to another community. A room could even be shared across two or more communities.

Which is useful, and someone that make Discord users feel even more comfortable when using Riot.

communities would become much more advanced and usable

That is the crux of the issue, the "server" paradigm of Discord and Slack should be seen as something we derive from, since a lot of people rely on it for moderation... that is not to say it is perfect, but Riot should make moderation even easier than Discord in order to beat it through the flexible "community" paradigm (with the exception where the complexity drive off potential users). Hiding advanced features from people is key to UX I think.

yajo commented 4 years ago

Hi. I'm new to Matrix. I don't use Slack or Discord. I'm just evaluating Matrix to be used as a company communications tool.

What would I expect in a community?

I don't know if Slack, Discord or Matrix support these because, as I said, I'm no active user in any of them. This is just what I'd expect.

IMHO if today a Community is just a collection of rooms, then maybe it should be called "folder" or "collection". Maybe Riot could just relabel that option without changing the Collection name in the API, and maybe we could add a new term "Teams" instead of creating a new version of collections.

Just some ideas...

ptman commented 4 years ago

@Yajo communities will be reworked in the (hopefully near) future. Probably as soon as e2ee work reaches the next milestone this month. https://github.com/matrix-org/matrix-doc/pull/1772

squarepupil commented 4 years ago

communities will be reworked in the (hopefully near) future. Probably as soon as e2ee work reaches the next milestone this month. matrix-org/matrix-doc#1772

Assuming I'm understanding the proposal correctly, I see the reworking of communities/groups to be rooms of rooms (gotta love recursion where possible) as being an extremely important step in the direction of "Discordifying" Matrix. If rooms are the fundamental building block of Matrix, then establishing some feature to group them arbitrarily and at-will is what will allow for people to actually build with them. In other words, to create and maintain communities.

I think that this would be "Discordifying" Matrix because Discord's organizing principle of the "server" does many of those things already; "servers" are virtual collections of "channels" (which are roughly equivalent to rooms) that are spun up on demand and which are easily abandoned. Having said this, I don't mean to paint Discord as some paragon of community. On the contrary, Discord "servers", though entirely virtual, are specified like real hardware servers in that they and their contents are stuck where they were placed, which is an extremely limiting design.

Matrix's decentralized mode is much more exciting because a Matrix "community" has the potential to be as fluid as real life communities are. A "community" could contain rooms that originated on dozens of different homeservers, that are accessible simultaneously in multiple communities, and that were cobbled together ad-hoc. This allows the community to figure out what it is as it's being built and to fragment, unify, consolidate, and just do many more of the real life social verbs in general. And all this (hopefully) ad infinitum.

One of the features that Discord implements that I think is crucial to Matrix one day supplanting it in terms of flexibility AND usability (and that @DonaldTsang mentioned in the feature request) is arbitrary role-based administration and user privilege assignment. A linear privilege system like power levels is by no means flexible enough to capture the complexity of needs in even a modestly sized community (e.g., 10 people). It's also much more efficient in allowing for mass actions like mentioning by role (like Discord can do). It also makes semantic sense for communities to establish their own rules by putting names to roles and privileges, which is something that they implicitly (or explicitly) do anyway. This dovetails nicely with the proposal to make communities into rooms of rooms because you could organize roles on a community level. It would need to be worked out how to reconcile conflicting privileges that might exist if the user has particular privileges in rooms contained within a community, but I'm sure this could be done productively. I haven't been able to find a discussion that touches on this in the matrix-doc repository, but I'll do some more digging.

SimmyD commented 4 years ago

It would be really amazing if a Community was able to pick a mumble instance which will serve it. Then under the community you could pull through the voice channels in mumble and integrate in the riot app (so it looks like discord does) so you can drop into the channels all in one place.

Something like this would really give me a chance to move my friends from Discord.

trosel commented 4 years ago

@squarepupil A "room of rooms" would be a house. Call them Houses 🏡 😄

Each House can have one or many rooms. This is something my grandma could understand.

@SimmyD I know mumble is super high quality and efficient, but the requirement of centralization on mumble is definitely a downside. Kind of antithetical to what matrix is trying to do.

Something like the original Skype where there is multi-casting going on in the audio room would be ideal. I know Jitsi is like a matrix partner right now, but something more in the direction of meething may be better still

nathanfranke commented 4 years ago

It's less of a "room of rooms" and more of a collection of rooms. Call them folders or collections. (You can't have a room in multiple houses in that analogy)

natrius commented 4 years ago

Or... "Community"? Sorry, could not resist. I'll lead myself out.

trosel commented 4 years ago

@nathanfranke

It's less of a "room of rooms" and more of a collection of rooms. Call them folders or collections. (You can't have a room in multiple houses in that analogy)

My understanding of @squarepupil is that they're going to re-design how communities work. I agree that communities today are very strange and not-intuitive. Part of the reason for this is the idea that a room can exist in multiple communities. It's... messy.

If a room can exist in multiple "houses", then nothing has changed with the way that communities work today and @squarepupil's comment here is pointless.

I'm sure I'm misunderstanding though.

natrius commented 4 years ago

But it should be possible, to be completely honest. There is right now a community for german rooms. He is just collecting german rooms. There can be a community for tech-rooms as well. And a german tech-room can be in both communities at the same time. I think thats really good. The thing is, a room 'can' be in multiple communities. So, why should this be messy. You guys are just not used to that. I like it.

A clan could create a community for the clan with multiple rooms. And the entry-room can be in the "GAME"-community as well, if desired.

And in fact, i like that and this should be kept in my opinion, because its great. You CAN use it this way, but you don't have to. Maybe add an option to make it not possible for others to add this room to a community.

You want it Discord-Like and keep your room in one house/community/whatever-you-want-to-call-it? Fine, just don't add it somewhere else. But keep the functionality for everybody who would like to use it.

nathanfranke commented 4 years ago

@natrius I agree that compatibility should be preserved. Many comments here suggest renaming things that aren't beginner-friendly