TryQuiet / quiet

A private, p2p alternative to Slack and Discord built on Tor & IPFS
https://www.tryquiet.org
GNU General Public License v3.0
1.94k stars 85 forks source link

Add member list in sidebar #1503

Open MrLuxuri opened 1 year ago

MrLuxuri commented 1 year ago

Please add a right-side Member List side bar allowing community members to see others who is active/inactive or their roles and etc.

Screenshot from 2023-05-01 17 47 10

holmesworcester commented 1 year ago

@MrLuxuri how do you feel about the Slack-style member list where it lets you expand the list, shows it in the left sidebar with your channels etc, and prioritizes people you've spoken with already? (I've heard from some people that they like this better because it's less distracting.) Would you be okay with a member list on the left side, above or below the channel list?

MrLuxuri commented 1 year ago

@holmesworcester Isn't that DMs, on the left sidebar under channels? Screenshot from 2023-05-10 19 44 16

I think slack has it like that instead of discord because it's workplaces are very separate from other workplaces and you have to sign out and sign in to switch between workplaces or sign in individually to every workplace, while servers, on discord, are all not that separate inside discord and it's easier to switch between servers such as shown below, so discord is a lot more easier to use here and has a much better and seamless integration:

Screenshot from 2023-05-10 19 47 40

As you can see above, you can join as many servers as you want, I am in like 20 servers, and once I log in to Discord, I can access all these servers, opposed to slack where I need to have signed in to every workplace, it's def more seperate on slack, so I will def pick Discord here over Slack.

Keeping the above in mind, I think when it comes to DMs, it should be seperate from servers unlike slack and there can be a chat button on the bottom left to access the DMs like on Guilded and on left center/up, servers can be listed.

Regarding members list which is what this ticket was for originally, surprisingly to myself, I am going to have to pick Slack here over Discord. Before I move on here, when I say member list, it's the member list sidebar on the right side you see on discord, slack is a little bit different here though, here is what they have done:

Screenshot from 2023-05-10 19 54 22

Instead of a normal sidebar on the right showing the list of members like Discord or Guilded, Slack has this small clickable widget on the top right corner, once you click that, you get a pop up with the list of members, and the advantage of doing this over just throwing a member list side bar like discord on the right, is that you can do more with the popup, especially being able to search for users, discord does not have a straightforward functionality like this, and this way it's less distracting to have the member list, as you don't have it always stuck on the right, you can click and open the pop up only when you need to:

Screenshot from 2023-05-10 19 54 40

To recap, I think for DMs, discord is far better than slack which puts DMs individually on workplaces under the channels, while discord has an all-in-one DM area and it's not tied with each and every server. For member list, even though I am def a hardcore discord user, I see slack's design superior here.

holmesworcester commented 1 year ago

I feel similarly about the member list design in Slack being less distracting and I'm relieved you agree. One complaint I hear a lot from non-gamer users is that Discord is too busy or distracting, and I think the expanded-by-default member list contributes a lot to this.

Also Slack is showing set of members in that channel, correct? So there's some notion of entering a channel and leaving a channel (does Discord have this). @pdurbin asked for the ability to see who was in a channel, and I think that's helpful here. We could keep it simple at the start and just show everyone in every channel.

I think for DMs, discord is far better than slack which puts DMs individually on workplaces under the channels, while discord has an all-in-one DM area and it's not tied with each and every server.

For DMs, there's a strong reason to do it the way Slack does, once we have DMs, which is that "under the hood" DMs in Slack are very much part of the community. You broadcast them to other community members like any group message, just encrypted to the recipient, usernames are specific to a community, and you can't just DM other Quiet users who you aren't in a community with. If we do it the Discord way, users will be confused about how it works under the hood. Also you'll get strange cases which could present security issues, for example if we mingle all DMs, I could impersonate another user by joining another community I knew my target was part of with an identical username and profile photo. This would work because there's no global registry of usernames.

Having a global registry of usernames is hard for a p2p app unless you have a central registry or use something like Ethereum's ENS and make people buy usernames.

MrLuxuri commented 1 year ago

I feel similarly about the member list design in Slack being less distracting and I'm relieved you agree. One complaint I hear a lot from non-gamer users is that Discord is too busy or distracting, and I think the expanded-by-default member list contributes a lot to this.

I absolutely agree here, maybe Discord could have made the "Hide member list" button more obvious, but again by design discord's member list can be overwhelming and it's visible by default so new users would have to deal with it unless they manually find the "Hide member list" button, slack seems to have a better solution here.

Also Slack is showing set of members in that channel, correct? So there's some notion of entering a channel and leaving a channel (does Discord have this). @pdurbin asked for the ability to see who was in a channel, and I think that's helpful here. We could keep it simple at the start and just show everyone in every channel.

Yep, slack is indeed showing members separately for every channel, while discord does not and shows all members, and this is actually something Discord is so much better in, it involves much more than just "the way of showing members". I feel like it would be better showing you a demo for this.

But I will give a brief explanation, as soon as you join a server, channels that are set public and open for the default "@everyone" roles (that's how channels are created on discord by default) will be visible by default to everyone, roles are a key part of discord, and they serve an important functionality that Slack completely lacks. All slack does is give access to channel that is enabled by default, while other channels can be added by users optionally, but with discord, you can make exclusive channels based on an exclusive role only some can have, you can have "self-served" channels (example: basically, user A enters a "gaming" discord server, of course everyone gets the @everyone role by default, user A goes to #roles channel, then in that channel, he can self-assign roles based on his preference such as "Xbox role, Playstation role, PC gaming role", user A has an xbox, so he/she will self-assign the "xbox" role, which will give him access to the channels that are tied especifically for the xbox role). This is a base explanation of how roles work, hopefully I did a decent job lol.

I'll contact you via quiet to give you a demo on a test Discord/Guilded server.

For DMs, there's a strong reason to do it the way Slack does, once we have DMs, which is that "under the hood" DMs in Slack are very much part of the community. You broadcast them to other community members like any group message, just encrypted to the recipient, usernames are specific to a community, and you can't just DM other Quiet users who you aren't in a community with. If we do it the Discord way, users will be confused about how it works under the hood. Also you'll get strange cases which could present security issues, for example if we mingle all DMs, I could impersonate another user by joining another community I knew my target was part of with an identical username and profile photo. This would work because there's no global registry of usernames.

Having a global registry of usernames is hard for a p2p app unless you have a central registry or use something like Ethereum's ENS and make people buy usernames.

Actually, DMs are also tied to the servers you have joined on discord or those who you have friended (they are just not obviously part of each community), for example if I join server A, then I will be able to DM people that are on server A, if I am on server B, I can also DM people that are on Server B but I can't DM those on Server C if I am not on that server.

All these users I have DMed on server A and B show up on the all-in-one DM area rather than individual DMs for every server, I think this is so much better, maybe I did a bad explanation before, hopefully it is possible and makes sense now, slack on the other hand is based on workplaces which is very different from discord-like servers even though it can be mistaken to be almost the exact same, each workplace is very individualized on slack and requires you to be signed in individually to each workplace, it's very much focused for profession workplace use, hence the name "workplace".

If a seperate all-in-one DM area is still not possible, then no worries!

holmesworcester commented 1 year ago

@MrLuxuri - we have designs for this now. right now for the member list, we hide it but make it easily visible, and we'll either show the users who have written in the channel or (when we have private channels) those who have access. We're showing users their avatar in the main view, so they can easily click/tap on that to change their status.

https://www.figma.com/file/frxdNd42wV8kgXoiBExoqR/User-and-network-status?type=design&node-id=716-24253&mode=design&t=xbnWStJrYrncITpO-4

(I'm also curious what you think about the "Network status" part. We decided to keep it separate from user status, though that is also a decision.)

It would be great to talk these through on a call. Wanna ping me in Quiet and find a time?

holmesworcester commented 1 year ago

And here's the issue on roles: #1704

holmesworcester commented 1 year ago

Related to #1504