Will Discourse chat include threads?

I’m enjoying the experience with Discourse 3 so far, especially the addition of real-time chat.

Is there a plan to allow for threads from individual messages, as is the experience in Slack?


Yes, we’re working on adding threading to chat but it’s still in the planning phase… we’re not far along enough to provide any details or timing beyond “sometime in 2023”


We are also not sure exactly what our first version of “threads” will look like, yet :slight_smile: (or what we’ll call it). Many of us are quite familiar with how threads work in other chat platforms, but in our initial explorations of communities that use them, we see the feature being adopted with varying degrees of success – it seems that different communities (or channels within a community) have different needs here (and some arguably may be better off without them).

@chadwcarlson I’m curious to hear more about what you’ve experienced so far in particular. In what scenarios have you found threads most helpful in the past? What kinds of scenarios have you encountered so far in Discourse chat where you’ve felt threads would have helped?


Thanks @awesomerobot! @mcwumbly Makes sense.

At the moment we do rely heavily on Slack, and whether its deeper discussion on a few questions/topics simultaneously, or continued updates on the status of a particular service that stay organized within a single thread, having threads keeps things organized in a way I like.

So far in Discourse chat its been an attempt to replicate this same experience. There’s a big advantage to being able to connect community chat to topics and posts all in one place, for sure. Right now I’m struggling to see how the chat wouldn’t become difficult to navigate for newcomers without threads based on my experience with Slack.

I suppose part of the idea of using chat without threads within Discourse is to start a conversation in chat that then gets moved to a topic as a kind of “thread”. Maybe that’s where I’m struggling with it - I still think in our case there might be a handful of messages prior to creating a topic where threads could come in handy.


Yeah, I’ve seen that work well in the past too, especially as groups get larger and there isn’t any alternative for keeping things organized.

Yep, thinking of chat threads as “proto topics” is something we have in mind. In the meantime, I do think it works pretty well as is, though. It’s certainly a different experience compared to Slack, so moving a community who has grown accustomed to that experience may be tough. But they way I see it is like this:

  • chat is just more informal. let go. don’t worry about keeping things too organized
  • letting a discussion evolve first in chat is fine, even though it’s not threaded. get a little comfortable with it being messy, no big deal.
  • when it feels like the a conversation has reached a point where it’d be valuable to continue in a topic, create a topic.

OK, that last bit, what does it look like and feel like in practice today?

Easy mode is:

  • Just start a fresh topic and maybe mention "as we were talking about in general… "
  • Drop a link to that topic back in the channel “Hey, made a topic about this here: link to topic

Fancy mode is:

  • Select all the messages from the chat conversation (shift click to select a span, unselect irrelevant messages in between)
  • Select “copy” or “quote in topic”
  • Create the topic with a new summary, but include the full transcript from chat, maybe even in [details][/details]
  • Drop a link to the new topic back in chat.

Both of these things do work well today in our experience.

But I agree, there’s an opportunity with threads to make “fancy mode” easy.


Good to read this thread, @chadwcarlson , @awesomerobot and @mcwumbly. Thanks for sharing.

I’m also scratching my head as to imagine what threads could look like in a Discourse context.

We plan to switch off our “free” Slack and encourage folks to move over to our Discourse with chat enabled. I’m very much enjoying the Discourse chat features and stumble every so often when I want to want to reply in a thread. I guess it’s habit and a habit to be broken.

I’ve used “Fancy mode”.

and it’s great!

+1 to this.

:bulb: I’m unsure how this might work in practice yet I wonder if some AI magic could recognise when a topic is forming via a chat and then suggest – to only those who have contributed to what the AI thinks is a topic forming – that they could turn it into a fresh topic. If someone selects “Yes, turn this into a topic” it automatically does “Fancy mode” and then suggests a topic to post in.


That’a my issue: users don’t move to new topic. They continue chatting and I don’t blame them (kind of I do :wink: ) because there that conversation was and still is in the first place.

Ability to select and delete in bulk would help, but we don’t have that deletion option.

So for me starting a topic is just a tool to save precious data, nothing else.

1 Like

This is on our list, but not sure when it’ll get to the top. In the meantime, the workaround is to create a separate channel (perhaps with staff only permissions) and bulk “move” the messages there.

It leaves behind an ugly trail of stub deleted messages currently – something else we will make better eventually too.

Nobody knows what it’ll look like in the end :wink: We are going to approach it as an experimental feature at first so we can try out some ideas we have before committing to a particular direction.

Please keep us informed about any other points of friction that come up as you do this!


I’m interested in this feature too.

I think it’s worth noting that sometimes users may want to branch a conversation out from a permanent channel (e.g. dev) into a topical discussion (e.g. #issue-X), and to have all of these topical discussions be grouped, archived and searchable, like the Discourse topics are, but still keep the real-time chat dynamic.

Currently, moving from chat to topic not only branches the discussion into a siloed topic (what we want) but also changes the flow of the discussion into something slower. I appreciate that sometimes we want to slow things down as the discussion “formalizes” but maybe sometimes we don’t.

I wouldn’t be surprised if this is why some of Jakke’s users reportedly kept using the chat - it’s not that they didn’t realize there’s now a dedicated topic, it’s that they wanted to maintain the fast flow of conversation.

In our community, we have some users actually moving from the forum, where the conversation started, into Discord, so that they can hash out the debate in real-time using Discord threads.

I plan to push for consolidating comms into Discourse once we upgrade to 3.0, and I’m excited for “fancy mode”, but I’m also concerned that there will continue to be cases where we need to branch discussions from the real-time channels and our only option will be the slower topic structure, which may drive users back to Discord threads.

I think there is a gap here in which Discourse’s own take on threads could shine.

A few ideas:

  • Threads should be defined as a branched topical real-time chat that can be formed dynamically by anyone and later archived (perhaps with a conclusion stated by the creator of the thread).
  • Threads should be viewable in their own list, like topics are, and we should be able to filter, group, sort, etc, by the associated channel/category/topic that the thread branches from. One of the biggest weaknesses of competing implementations in tools like Discord/Slack is thread discoverability - Discourse has the building blocks to do it much better.
  • It would be cool to be able to thread off from literally any message, not only threading from real-time chats but also from slower topic replies. For example, if someone replies to a topic and you have a small clarifying question about their reply but one that you don’t want to distract the main topic with, you could start a real-time thread quoting the relevant part of their reply. Replies could even have multiple threads and these could all be visible to anyone viewing the topic. This would eliminate the problem my community has of people wanting to branch away from Discourse to hash things out more quickly. It would also have the byproduct of keeping topics cleaner - since they should be narrowed down to well-formulated arguments while all the rough stuff branches off into threads.
  • If you’re worried about the branching discussions making it harder to follow the big picture, I think this can be addressed by 1) people crystallizing the branched discussions into more formulated topic replies, 2) AI summarization tools.

Edit to add:

I think we are approaching a point, especially if threads are being experimented with by the core team, where the hierarchy of topics/replies/chats/threads will need clarifying in the UI/UX.

Currently it’s already somewhat confusing. I can reply to a topic and I can reply to a reply. Currently the only difference between the two visually is that the reply to a reply has an indicator showing who I replied to. For others following along, it can be hard to see how the topic’s discussion branches. We may benefit from nesting the replies to replies a la Reddit. The building blocks are already there in the Post Voting plug-in.

Introduce threads and the questions about hierarchy/branching go deeper.

If we have the ability to form threads from topic replies, these would need to be visually distinct from nested replies to replies (assuming that change was made), since they’re still functionally distinct with threads being a real-time branch while replies would be a nested continuation of the slower topic structure.


It is very unlikely that we’d build threads into topics any time soon, we’ve said no to this many times and flat discussions are one of the earliest design decisions that went into building Discourse: Web Discussions: Flat by Design

Topics that have many sub-discussions are generally hard to follow with or without nesting, and if there’s anything important nested within, it can be very hard to find on repeat visits. If a topic is starting to branch off in different ways it usually makes sense to branch off into a whole new topic instead.


And this is the key point.

Discourse is big on Moderation, and this is all part of the Moderation process.

1 Like


We are testing chat threads internally and should have something to show in the upcoming few weeks.


How are those tests coming along, @sam?

I know our community of testers would be excited to try out chat threads. :smiley:


I think we should have something to share within a week. We plan to expose the feature flag and create a brief topic that gives an overview of the feature to enable people to start kicking the tires.


Said brief topic can be found here:

Can’t wait to see what you all think!