Discord Launches Threads
blog.discord.com
blog.discord.com
Far far better than other abominations like slack - which hides streams of conversation behind a wall, making the UX terrible.
Personally I find slack threads perfectly usable and helpful for keeping things organized for the most part. What's the issue with them? I found them a revolutionary step forward in chat UX to be honest, something that had been missing for 20 years or more.
Also I’d rather not grab my mouse to see things.
I have not tried threads yet but I have been assured they are fully accessible via the keyboard only.
Use the up and down arrows to navigate to the message you want and hit T to switch to the thread side view. Similarly, you can do the same to find your own messages and use E to edit them.
Essentially there is a default view which contains all messages as usual. Each message also has a symbol next to it. If it's grey message bubble, it's a message that is not tied to any thread (it can be replied to to start a new thread. Previously if no other messages have appeared on channel so far, it can be dragged & dropped to another thread). If it's colored message bubble, it's the first message in the thread. A colored arrow means it's part of the thread with that color.
This allows you to mostly just stay in default view with all of the channel's messages. As long as people are putting the messages in the thread itself, you could quickly use the colors to see which thread the message is on (color collisions did happen, but they were fairly rare). You would need to open the thread only if you needed more context or wanted to reply to it, though replying can also be done by writing to channel & dragging the message to thread.
Zulip's superior topic UX was why I went with it over Slack & Discord. Now Discord has feature-parity there and even more with 'private' topics/threads. I have to create a separate channel/stream if I want some topics to be private.
So now, since my users love Discord so much, I'm going to be fending off requests to move over to Discord, where the conversation data is locked in and cannot be self-hosted or exported.
Good for Discord, but I admit I'm not looking forward to said conversations.
I'm not usually a defender of Slack but this is one of the things I _like_ about Slack threads. Typically in our rooms every discussion is a thread and if I'm not concerned with that particular discussion there's only ever one message and notification I need to dismiss. If I _am_ concerned with it I can opt in to reply notifications with two clicks.
People also learn to use threads quite fast. You can rethread comments if they don't have a reply yet (they are not in any thread yet).
I don't like that you can't come back later, select a bunch of messages or threads and say "Group into a thread" to clean up people not using threads.
Also I kind of hate when it's a week later and someone responds to a thread and you get pinged, but can't find where you got pinged from without clicking the dynamic group to see all thread activity.
Also, it really annoys me that threads open on the right with the text entry on the lower right when toast notifications on Windows pop up on the lower right, too. Great, now whenever someone replies I get a toast popup blocking me from seeing what I'm typing. Thanks, guys. Sure, that only happens on one monitor, but that's also the same monitor that I want my toast notifications and my Slack to be on because it's where I'm often looking.
Tweeted about this here:
https://twitter.com/amontalenti/status/1263317861537402885
Nice to meet a fellow traveller!
And yes, to the point of someone else on this HN thread, the closest thing to Flowdock threads on the market today in a semi-popular chat product is Zulip "Topics", as described here: https://zulip.com/help/about-streams-and-topics -- the difference is that Zulip forces threads to be labeled (similar to an email subject: line) whereas in Flowdock, all threads were anonymous, given a thread-id (permalink) automatically, and also automatically color-coded.
I understand the "also send as direct message/to group" mimics this. This, for me, is a good thread implementation for a chat tool.
I'm not sure if this is appropriate, but getting conversation representation and message sorting right is the largest focus of my passion project, Ametha.
It would be amazing if I could have a 15 minute voice call with you to hear about your experiences with online communication & collaboration?
The offer is obviously open to anyone else here as well, but no pressure at all, and apologies if HN is not the right avenue for this.
Edit: Feel free to use the email in my profile
Lack of competent engineers in the product might also explain the extended downtimes last year. One of them apparently included a full-fledged database corruption where all conversations for a day or so were permanently lost.
I know at least one organization that is so deeply ingrained and accustomed to Flowdock that they haven't even considered migrating to Slack. I, too, still think that Flowdock is a superior product to Slack for the core chat feature. Adding simple video-conferencing would pretty much bring it up to speed with the modern day.
But the core design with threads is a killer feature and prevents migration to anything else.
They granted create threads to everybody by default but granted manage threads to nobody by default.
So we had moderators who could delete channels, delete create and modify roles and role permissions, and delete messages as well as ban/kick users, but couldn't manage or delete threads.
"public threads" show up in the main channel list to everybody as a sub channel, and everybody had permission to create and name them what ever they wanted, but nobody could delete them until i logged in and gave it to my mods.
Realllllllllly well done roll out discord.
I was able to remove "create thread" permissions from the default role, effectively turning threads off. But first I had to add a new role to grant myself those permissions. I also had to ask people who had created threads to please delete them because I still can't.
Assuming you're an Administrator, it's covered by that.
Its a common system to only have the server owner and maybe 1 or 2 other people with the administrator permission.
I personally run a 5k user discord with only me as the admin, and like 90 mods who can do varying levels of things.
Why discord didn't make it default to on for people with manage_messages i don't understand.
Otherwise they would have enabled the feature and defaulted it to off. I found out that we had threads enabled when someone created a thread.
And its just annoying to see all the duplicated text. If you have several people in a discussion or there's two threads of conversation going on I sort of get the idea that you want to respond to a specific comment -- but there are ways to use the English language to indicate clearly what you're responding to. Even if its just "re: whatever, ..."
I’m of the completely opposite opinion.
If I want to contribute to a prior discussion that happened a few minutes ago but another one is taking place now, then we have two separate conversations in the same linear chat stream. With a thread, I can respond to who I want without interrupting anyone else. Without threads, you’re reading through all the messages and trying to figure out which are relevant.
Most of the Discords I’m in are game or mod related, and I’m often using their help/questions channels. There’s usually only one or two of these channels, so if multiple people need help at the same time you get scattered conversations and it’s confusing to follow, especially if you step away for a second.
Direct replies to the messages help but they still exist in that linear main chat stream, so there’s still a lot of clutter that everyone has to navigate through. With threads, you can have multiple questions asked simultaneously and each one has all their discussion in their respective threads, making it very obvious which messages are meant for which question and making it easier to navigate.
E.g. someone could put a message in #engineering about a bug. All the engineers get that notification so anyone who knows more details can chip in immediately. They then reply in a thread on the original bug message so they can discuss without everyone else getting bothered with irrelevant notifs AND without locking the conversation into a group DM where nobody else can chime in nor can we all easily search for it later if it’s relevant.
This is also a feature that discourages a bunch of side conversations. If I've participated in conversations on 5 different topics that have moved on, it can sometimes be tiring to have those old threads reopened with more discussions. It's like having 3 text conversations while also being out to dinner with friends.
I reckon that’s more due to reopening old conversations regardless of whether it’s threaded or not. In fact, I feel threads make it easier to return to those conversations again: your message is there in that side-chats history and not in some global history where now people are scrolling back-and-forth to remember the prior conversation.
> It's like having 3 text conversations while also being out to dinner with friends.
Threads are like 3 text conversations + a vocal conversation. Not having threads is like 4 vocal conversations all over each other.
I think we both agree there. My hypothesis (with no supporting data) is that the threaded format makes it easier to reopen old conversations, which makes it more likely that people will do so. In the vocal conversation analogy, the difficulty of having multiple vocal conversations at once naturally prevents people from starting more. Depending on the context that might be desirable or undesirable in a chat app.
Yes, this is the essential nature of real-time chat. The channel already serves as the demarcation of topic.
What you're describing is a forum, a totally different modality.
> Direct replies to the messages help but they still exist in that linear main chat stream, so there’s still a lot of clutter that everyone has to navigate through.
This isn't clutter, it's literally the point of the tool.
Discord can be real-time, it can also be slightly-slower-than-realtime; maybe as slow as a forum at times, but with different expectations (namely being closer to real-time.) Personally, that’s most of the Discords I’m in.
> The channel already serves as the demarcation of topic.
Channels are a broad demarcation. Example from my experience, a #general-development-help channel in a Discord about using mods for a game, developing them, and chatting with mod developers. Threads then become useful for a person asking a particular question to whoever’s online and anyone interested gets to discuss it in an openly accessible but politely/quietly aside fashion.
> This isn't clutter, it's literally the point of the tool.
It does serve the useful job of “hey everybody, this message is a direct reply to this other message, not necessarily the one(s) right above me!” In smaller groups this is cool and good, and I like the replies as they are. In larger scale chats where there may be multiple discussions simultaneously within a channel (and they can’t reasonably make enough channels to break them all up), I think threads help contain the discussions.
> What you're describing is a forum, a totally different modality.
There are a lot of Discords that do function like faster-paced forums. It has grown beyond a real-time text/audio/video chat app for a small groups of people.
One way to keep that reputation is to not deploy features that enable more professional use cases. Perhaps they want to be more than a casual app?
I personally like threads, they are a very minor bump in app complexity that can significantly improve context reassembly - the primary issue with chat apps.
They do, hence their recent rebranding that resulted in less of a "for gamers" image :)
Use of social networks, slack, emojis, messaging apps, sync vs async communication…
Its not a criticism of any kind, mind you, it’s just very surprising to me.
There was simply no way to know who someone is replying to, or part of which of the multiple conversations in the channel is that message a part of
Discord was modeled after this interaction (and IRC, which was modeled after this interaction).
I agree with that you're saying but it's also not the only way one interacts with Discord. I might only visit a server once a week and try and catch up on the messages posted in that time.
Seems like threading but with a UI option to collapse to a flat presentation suits both sides?
Content from a "sidebar" conversation is usually taken far enough away from the larger group that it's not bothersome/interrupting the topic of the larger group; but—unlike a whispered aside—these temporary sidebar conversations are still public conversations, and they leak enough signal to the larger group that if someone in the larger group focused on the sidebar conversation, they could pick up the general topic of what's being discussed, and choose to join the sidebar discussion themselves.
Hey, that's threads!
The difference is we just aren't really saying anything.
HN always presents a lot of reactionary positions to anything.
[0]: https://docs.mattermost.com/messaging/organizing-conversatio...
In Mattermost, new replies show as normal messages in your feed with a bit of context for what they’re replying to, and clicking on the context expands the full thread in a sidebar.
I find the Mattermost implementation more ergonomic because you can read replies without expanding the whole thread every time, and stale threads will get bumped by new messages.
It's worth noting that the design you prefer isn't being deprecated; Slack-style threads are being added as a user display option.
An example of this design is Aether. (Disclosure: I work on this, aether.app) If you have issues with Slack-style threads or curious about alternative solutions to this issue, it might be worth checking out.
I'm going to give this a shot a bit: an in depth reading of this blog post has given me some appreciation that Discord is trying to keep it better than Slack's. They have moderation mentioned front and center, so that feels good to me that they kept it strongly in mind. I also like that they will be visible in the channel list as "sub-channels" and that they will auto-archive with a time limit (defaulting to 24 hours to start). Those two things do try to address things I disliked about Slack's implementation, so I'm hopeful to give it a shot.
Maybe my remaining criticism here is I think I'd prefer the default time limit to be something smaller and related more directly to activity. Maybe something like "after an hour or maybe two hours of silence" to keep them to "active conversation sidebars" only. I also don't like that currently changing the time limit is a Level 2 Boost server feature if I wanted to explore options on smaller servers I control/moderate. On smaller servers your main option is just to turn them off entirely. (Though I sort of understand that it is a Level 2 Boost because from their perspective servers are going to want to increase the time limit as a perk. I wonder if they could make it free to decrease it, if it's not a "perk".)
What's annoying about this is it was sprung, default on, with no warning. I'm a mod (not the owner) of a server that got them, and we weren't given the permissions to disable them from @everyone, only the admin can do that at first. And he's not currently been on because of time zone differences. Which means it's just an easy open vector for someone to come in an raid and just cause chaos. They should've had it off by default, at least for a few days to let server owners experiment and play around with it.
To answer your question, though: Community Servers get a couple more security and safety features that help with moderation. They get a "Welcome Screen" for helping new users not feel quite so lost on first joining the server. Discord is generally better about notifying Community Servers of upcoming updates and slower about rolling out new features to them (such as Threads).
https://support.discord.com/hc/en-us/articles/360047132851-E...
You can categorize/tag threads (why not automatically based on groups of users) and they can show up as a feed similar on HN/SO/Reddit, but in a sidebar so you can easily swap between them.
If you're imagining how that would look, no need to look further than an email client. The advantage of it being threads with tags/categories is that it makes it easy to move one thread from one category/tag to another (for example moving the conversation from DEV to SRE) without loosing context/history.
Then there's no aside conversation, because everything is an aside.
Forum threads/email convos for focused convos, stream-y chat otherwise. Mixing the two ends up being really messy IMO.
It does mean you gotta kinda move around, but I would kill for Slack to implement an "inbox-y" form of conversations, so I can actually keep track of open loops
https://support.discord.com/hc/en-us/community/posts/3600483...
Another problem with Discord is that its anti-spam measures are making it harder and harder to create an anonymous account
There's no point in having an anonymous Discord account if you have to use the same account for everything in your life. (Reddit and Facebook have the same problem as well)
What do you mean here? I have multiple discord accounts that I have logged in at once. One on the client, one in browser window, and another in a private window, working just fine.
> Another problem with Discord is that its anti-spam measures are making it harder and harder to create an anonymous account
Haven't made an account in a while, what has changed? Used to take only a couple minutes to get an account up and running.
1. email@example.com
2. e.mail@example.com
3. em.ail@example.com
4. Etc etc
It seems this has somehow changed. Historically, the web app connected to the webserver of the locally running client, so it was impossible to be logged into more than one account on a device with native app running.
- Discord - Discord PTB - Discord Canary
The clients can all be open at the same time and can have different accounts logged in.
Servers have an obscene amount of channels, while IRC has a single channel per topic, and sometimes has one or a few more (ubuntu, for example).
I honestly have a hard time using discord because of that. Discussions are atomized. Some channel are just pointless and often silent. The notification system is stupid and you just mute everything because of it (the tray icon is always red while you have nothing to read, and you are not going to scroll all channels you're not really interested in).
Oh yeah, and displaying the user list is pretty pointless when there are more than 40 users. Just my opinion.
I just keep a very small amount of servers.
My main concern right now is with discoverability and moderation - it seems a bit difficult for moderators to see recent activity across all threads, unless I missed something.
Other than that, I'm cautiously neutral.
I can see there's a Threads button next to the search bar, but it appears to be scoped to the channel I'm in; I don't see a way to see threads across all channels.
Though at the same time, it seems a bit weird that it's almost like a sub-channel? Does that mean in this scenario you'd have a whole list of threads down the side underneath the channel for every question?
I see people complaining about Slack threads but I personally find them perfect for what it needs to do. Creating a short thread from a message doesn't seem as big of a deal as what this looks to be doing.
I like the idea of having temporary side conversations with a time limit. There should never be an "eternal" thread, just things that come and go.
It has both now, but each room is either 100% threads or no threads.
[1]: https://matrix.org/blog/2021/07/27/element-raises-30-m-to-bo...
It's disappointing that it's so hard to convince the companies "management" to switch from chaotic Slack communication to something better for async and organised communication because clients are used to Slack...
The same applies to Discord as it's just the most accessible way, everyone uses and it's just largest common denominator regardless of the chaos in most of the channels, hope the threads will clear some things up when people use them, and not like in the Slack where everyone just paste response in the channel instead of the threads.
I hope they'll improve though, would love to switch to Twist. Their model for async work and threads is awesome!
If your conversation channel flows like a blur and is “chatty” then there’s probably not a subject line for each one. If it’s more like a forum with divergent topics then you need some nesting, and every solution for nesting has the same essential function just with a different UI.
It’s like implementing, tabs, pages, sheets, screens, windows, or layers, in the end you’ve done the same thing - boxed content and made it selectively displayed.
As for managing a support server and the channel clutter, have you used any of the various "Support/Ticket" bots for discord. TicketTool[1] is probably the most popular. I've used it, and its pretty nice.
Disclaimer: I am not affiliated with either Discord or TicketTool, just opinions.
It's fine, not every product needs to be super original I guess, but it's gotten to the point where choosing one over the other is barely even a statement about your identity anymore. Although I guess most people do both: Slack for work, Discord for friends. It's boring when those two experiences are so similar, tho
Why on earth would I want it to be?
Discord: you grant to us a perpetual, nonexclusive, transferable, royalty-free, sublicensable, and worldwide license to use, host, reproduce, modify, adapt, publish, translate, create derivative works from, distribute, perform, and display Your Content in connection with operating and providing the Service
Slack: the Customer [...] grants us and the Slack Extended Family a worldwide, non-exclusive, limited-term licence to access, use, process, copy, distribute, perform, export and display Customer Data and any Non-Slack Products created by or for the Customer, only as reasonably necessary (a) to provide, maintain and update the Services; (b) to prevent or address service, security, support or technical issues; (c) as required by law or as permitted by the data request policy; and (d) as expressly permitted in writing by the Customer.
Threaded discussions boards feel like the opposite to me, where flat threads are nearly incomprehensible (i.e. classic internet forums where quoting is the only message hierarchy).
So one could setup a server with a mixture of threaded conversation and more IRC-like chat.
Discord seems to have executed fairly well so far overall. And its client apps don't seem quite as awful as Electron apps usually are. I wish that Teams did chat channels as well as Discord does. Actually I wish that Teams would just be less clunky and buggy overall.
My IRL friends and I are in a server where we all have admin permission, so even if I turn off the threading permissions for @everyone, we can still make them.
I use Slack threads everyday. I've only heard of one person in our org (or in any org I've been in prior that used slack) who had strong opinions about threads.
Thanks for the very genuine opinion. Perhaps I'll start refining my own opinions about chat app threads.
¯\_(ツ)_/¯
- @-ed in a new thread and channel you've never heard of without context. e.g. '@yourname ^^'
- @-ed in a new thread in a conversation that has long since passed where all the discussion was done at the top level of the channel in a normal stream and you now have to deal with two paths of context.
- responded to in a thread that happened months/years ago with the expectation of immediate reply
- multiple people taking a linear conversation and starting their own threads thinking they are talking about different things which end up being the same conversation and having no way to merge these flows back together, then getting @yourname'd a month later and having to somehow find this adjacent thread where the actual conversation is happening.
- trying to catch up from vacation and having to try and mentally or actively serialize some number of days of communication temporally
Every Slack user in a business setting quickly becomes a power user if you are in orgs of 500+. I have no idea why the UX designers feel like everyone works on one thing at a time instead of being in a constant context switch hell which Slack's current UI does nothing to help. The thread views Slack provides are only the 'side view' and the 'thread list view' but you can't break it out into more windows if you need it. I am constantly in situations where I need to look at channels and two or more threads a the same time when trying to figure something out and I end up having to copy chat out of Slack into text editors just to stash a link/context/system output. Searching is also terrible- are you going to match the head of a thread or are you going to match the message right after it? You also can't look at a channel with 20 threads and see what you haven't read between last time you looked and this time. The best I have been able to do is keep a mental count in my head which only lasts a short while and not days. The thread list view is also terrible because it is a push and pull battle between unfolding threads so you can see what the heck it was about and then having to do it all again because you ended up having to switch contexts to answer a more immediate issue.
There is the restrictive protocol channel where every top-level message is distinct and any related message should be a thread message and that mostly/kind of works. I've seen that work OK as more of an ask-for-help situation, but it tends to also obscure what is happening if it there happens common cause outage. Everyone sees a different effect, but the root cause even if there is a pinned post added becomes not obvious because you can't actually visualize all threads of the conversation at once even if the person with knowledge is leading someone to water. Either way every channel with a restrictive protocol I participate in that uses this style loses a lot of its dynamic culture. You don't see who's regularly asking questions or follow-up questions that are actually of interest to you, you only see the bland post unless you click on every single link. I would enjoy watching channels on IRC because you'd find people who were answering questions and responding to follow-ups where the solid advice ended up being. Instead you can't passively find these things without clicking on every single thread and hoping you somehow infer this instead of it being plain and obvious. To that end even when I see that it is used effectively it is not something I think that helps people.
I lose context for 10% of all threads I end up needing to follow a week minimum (note *need* not want). I rarely lose context for anything that's posted to an actual channel because I can start at the top and scroll to the bottom and ensure I didn't miss anything. I don't want to click on every thread because often these threads have links to other threads and on other/same channels that I also can't quickly read through and find what I need to know. I always know when a channel hasn't been read and now that the Slack UI allows me to group channels in a sane way I now can efficiently loop through all the channel contexts I need to at the appropriate frequency of engagement. I also can't easily copy a block of channel messages and their children threads with just a quick copy and paste- and I end up needing to do that frequently.
After only two days this week of being buried in thread hell I would cry for joy if we went back to linear chat and using a ticketing system for any actual threads you need.
I think XMPP and Trillian might still be going but once Facebook, Microsoft and Google stopped playing nicely ...
edit: After my initial response (above) I was thinking I don't remember chat systems having 'proper' threads implemented, while forum software and commenting systems do have. Why is this?
what am I missing?
I see other major differences. Discord and other chat-apps invite much more real time participation than the other two you just mentioned. Also discord you have to be logged in to be part of a server, not much casual lurking going on.
This might be it.
they are out of ideas, it's becoming a bloated product (it was already tbh)
forums+IRC here we go agane
IRC #1 for me, i sometimes use discord, but i don't it's not always open anymore
Working on a public discussion/chat app that's a bit more forum inspired with no walled garden. If you're interested it's in my profile.
The scenario is that you typically join someone else's server or provide them with a link to one you are already a part of.
Would you want some client-side assurances that a young user doesn't interact with someone who says something you dislike, or would you want this on the server-side?
What does the interaction with people who do not have those controls look like?