When we founded Discourse in 2013, I had the idea that we’d support topics of any length or size, from 10 replies to 100 to 10,000 to 100,000 or even more!
A few years ago we ran into a technical limitation where we send down a list of all the post IDs in the topic when you enter the topic. This starts to cause problems on the client – particularly older smartphones with less memory and CPU power – at around ~10,000 replies, so we created a site setting that automatically closes topics at 10,000 replies and defaulted it to on. It’s certainly possible to turn this setting down or off, but we believe in “safe by default” at Discourse, and extremely large topics were no longer safe, at least for some clients.
This was meant to be a temporary solution as it was a significant amount of engineering effort to create a solution where we sent down only a partial list of topic ids based on what you are viewing. We planned to revisit this later.
However, as we started to investigate MEGATOPICS, it became clear that they are
- not that common
- often quite problematic
… and now after looking at this for quite some time, with many live examples, I believe that MEGATOPICS should, in fact, be permanently discouraged. Here’s why:
-
Megatopics are impractical to read. By the time you reach 10,000 replies, who in their right mind is going to sit down and read through all 10,000 of those replies? So how does anyone catch up with the current state of the topic – maybe by reading the first post and the first 50 replies? Reading only the last 100 posts? Even using our handy “summarize this topic” function, you’re looking at reading 1,000 of the most liked replies to understand what went on in that topic. Your best bet is for someone to read the whole thing and edit a summary into the first post, which would require a staff member, or the first post to be a wiki.
-
Megatopics are impractical to navigate. How long did it take this topic to get to 10,000 replies? A week? A month? A few years? While you can easily jump to the beginning and end of any topic using the handy timeline feature in Discourse, you are on your own figuring out what exactly happened in the vast middle of that topic. We’ve discussed adding breakpoints or chapters to topics at some point, but there were certainly important “events” in any long running topic you’ll need to dig through the dates and posts to figure out yourself.
-
Megatopics are genuinely rare “in the wild”. Right now I’m looking at the archives of a forum we migrated to Discourse in 2017 that dates back to 2003, and sorting by replies, I count 7 topics out of 87,602 that are over 10k replies. Seven! That’s about 1 megatopic for every ten thousand topics. There’s also a fairly steep dropoff in topic length at that point; only 9 additional topics are over 8k replies.
-
Megatopics tend to lose control of the actual topic. It is normal for a topic to veer and meander, but the longer the topic, the more likely it is that gentle conversational curves morph into radical changes. Furthermore, the longer the topic goes on, the more the world changes around the original opening post that kicked things off – if it is about a then-current news event, for example, other more recent news events may have rendered it moot or significantly altered its meaning and trajectory by now.
-
Megatopics are often users expressing a desire for a chatroom. There’s nothing wrong with the desire for a chatroom, but chat works best in actual chat software, which is designed to host impermanent, rambling, neverending conversations about anything – and where users can create their own channels at will. For example, here’s a topic titled Ask me [warhammer] lore questions which currently has 58,283 replies… and counting.
So here are my recommendations:
-
Use natural breakpoints in topic titles: years, seasons, months. A topic titled “Best Horror Movies” will be hard to find and hard to navigate. But a topic titled “Best Modern Horror Movies” or “Best Horror Movies of 2018” will fare much better.
-
If something significant has changed, start a new topic, and link to the old one. Instead of adding to the “Diablo III” topic, create a new “Diablo III – Reaper of Souls” topic to cover the game’s latest expansion and patches with the changes to the core game as a result. In discussing the Houston Oilers after their 1999 move to Nashville, create a new “Tennessee Titans” topic.
-
For big timeline events, consider creating a new topic. Big events are often worthy of their own topics. A huge release like Smash Brothers certainly deserves a new “Smash Brothers on Switch” topic where people interested in that can easier find it, versus being buried deep in the general Nintendo Switch catch-all topic. This can be linked both to and from the general Switch topic (or the general Smash Brothers topic) as needed, of course, and now it can be found easier via search as a standalone topic.
-
If your users are implicitly telling you they want chat, maybe set one up? It’s perfectly fine for Discourse to live side by side with ephemeral chat, and it’s exactly how we use Discourse internally! Chat doesn’t compete with the longer form conversations on Discourse, it is highly complementary to those conversations. There are plenty of great free chat options out there, like Slack and Discord.