Understanding and Using Discourse's Flat Threading

There has been some consternation about the threading model used by Discourse, community.lsst.org’s platform, from those expecting the types of hierarchically nested reply chains that are standard on many forums. This post explains Discourse’s threading design, reasons for its design, and gives some straightforward suggestions on how to work within the design. With experience, Discourse’s threading and general view towards maintaining conversations should become natural to you.

Discourse’s threading design

Three rules define Discourse’s threading model:

  1. Posts are chronologically ordered in a topic,
  2. On the parent post, there will be a button indicating there are replies that aren’t directly subsequent to the parent post; clicking that button will make those replies appear below the parent with indentation.
  3. A post that is a reply to something other than the post preceding it will have an icon on the upper right indicating who that post is replying to. Clicking that icon will make the parent post appear directly above the post, also with indentation.

That is, posts appear chronologically, with a small amount of UI to provide immediate context of what the post is referring to, and what the replies are, if those posts are not sequential.

Why Discourse was designed this way

Those used to hierarchical threaded reply chains, such as those recently implemented on Facebook and also seen on Reddit, among other places, may see the flat threading of Discourse as primitive. In fact, Discourse was consciously designed this way to improve conversations given lessons learned from hierarchically-threaded forums.

From a user interface perspective, hierarchical replies are the simplest way to show reply relationships between posts. A post that is a reply to another gains a level of indentation. Such a simple logical model, however, often results in disastrous typographic experiences.

Another, even more fundamental, problem is that hierarchical threading divides the conversation. By creating a sub-thread, you are effectively creating a new conversation around a reply rather than working towards the original poster’s goals.

Discourse’s threading model is designed to promote better, more considerate, conversation that’s rigorously focused on the topic of the original post. By creating a flat post chain, it’s easier for someone to read and grasp the entirety of a conversation and understand how it evolved with time. It also creates an intrinsically cohesive conversation. By appending posts at the bottom of a topic thread, Discourse is reminding us that our posts are to be considered in the entirety of the conversation and discouraging off-topic side utterances. Chronological order makes it easy to identify the ideas that were presented prior to each new idea as a form of intellectual provenance.

A guide to Discourse replies

When posting into a topic, remember that your post must be on-topic and useful to the entire conversation.

By default, just reply to the last post. This is how conversations work. Someone says something, and you say something else in reaction.

Reply to a specific post (not just the last) if it will clarify your writing. In doing so, a reader needs to click only one button to see the post that most specifically prompted your idea. But remember, you are still speaking to the entire group, not just the single writer you are replying to. The Reply button is only a tool for adding context to your writing.

Another way of adding context to your posts is to use quotes. While writing you can highlight the text of any other post and it will be inserted as a quote in the body of your post. This way you can respond to many people and ideas in a single post. Quotes are awesome; use them.

If your idea was prompted by, but no longer serves, the conversation and the original topic, use the button on the right margin to reply as a linked topic. This is a great way to politely split off the conversation so that the original thread can stay on-topic, while still giving you the freedom to pursue a new conversation about a different idea. Participants will know the two topics are related thanks to links in the side margins. Interested participants will follow. And in fact, if a moderator feels that your post is better suited as a new topic, that moderator can retroactively gather your post and related replies into a new topic.

Above all, Discourse is designed to promote cohesive and rigorously on-topic conversations. By following these guidelines, it should be easy have meaningful conversations with far more elegance than a hierarchically-threaded forum can provide.


and nobody wants those…

They actually are. You may not realise it at first but when you are writing a reply you can continue to select text from the thread and add the quotes to your message. You do not need to reply to a single quote at a time. In fact, if Discourse sees you doing that it politely suggests that you should consider putting multiple quotes in a single reply.

1 Like

Despite being pretty convinced before reading this that the Facebook way was the “right” way, I am now sold that this is actually the correct model. for this use-case.

I see how this will keep people on topic, and just think it’ll take a little getting used to. The fully threaded model works on Facebook (for me), but I personally find it to be a total disaster on Reddit, and it actually stops me from using the site, and I think this forum will be more Reddit like than Facebook like, so this does seem to be the way to go.

Thanks for the detailed and persuasive explanation! :slight_smile:

1 Like