Chat rooms, topics, and evergreen topics

Continuing the discussion from Being a Heretic aka Going Back to Pagination?:

What’s so bad about a “chat room” topic, I asked?

I agree that mixing mediums is dangerous, but I think this notion creates a false dichotomy.

I think we agree on what Slack/IRC-style chat is for: short messages, intended to be shared synchronously with whomever happens to be present at the time. Chat history is ephemeral; unimportant.

Chat channels also don’t normally plan to “end.” You don’t start a #games channel and then stop the channel when you’re “done” talking about games. You especially would never say, “hey, the #games channel has been actively running too long; we should shut it down and create a new channel.” That makes no sense. You just keep the channel going.

(Maybe if #games gets too cluttered, you split it into separate channels, #board-games and #video-games, but then you still leave both of those channels running forever.)

As I read @codinghorror’s remarks, the idea seems to be that there are two forms:

  • chat: synchronous short-form never-ending channels
  • forum: asynchronous medium-form topics that conclude when they’re “done”

In a topic, we want to encourage participants to read the entire topic before posting a reply, unlike a channel, and that’s important to prevent the topic from going on forever and ever. We want the topic to reach a conclusion, to serve its purpose and be done. I think Discourse does a great job of encouraging good behavior in topics.

But as I thought about it harder, it seems to me that while forums are for asynchronous medium-form communication, they certainly can be used for never-ending channels, too, where the history is unimportant/ephemeral and we don’t even intend for everybody to read the entire channel history before posting.

For a notorious example, look at 4chan, where the history of a “board” is intentionally ephemeral. When you click on a board, once you scroll past the flashing ads, :confounded: the first thing you see is a recent post. Not the first post in the board, but not the last post, either. Just a post, from earlier today. If you scroll down a bit, you’ll see more posts, and eventually you’ll see the most recent post in the board.

If we were all on IRC and we said, “this chat thing is nice, but I wish we had a website where we could post a few paragraphs instead of short messages; old history would still be mostly unimportant, but the expectation would be asynchronous messaging within a 24-48 hour time window, as opposed to just saying stuff to whomever is here,” I think it would not be wrong to call that thing a “forum.”

Certainly if somebody replied, “that’s not a forum, that’s really a chat room,” that would be a weird thing to say, because it’s obviously quite different from a chat room.

But it’s also really different from a “topic,” too. I think it’s a third thing. You might call it an “evergreen topic.”

Concretely, earlier today I filed a feature request to summarize the first N posts of large topics by default, which would significantly help with scrolling and performance issues on large topics. But perhaps we could go further by hiding old history entirely on certain threads, without summarizing, showing only the first post and the N most recent posts in chronological order. (We’d especially then want to let the author update their first post beyond the edit window, which is a big annoyance for mods on our forum.)

That way, if topics have gone on too long, we can end them, but if we want to run an evergreen topic, we can.


You might be interested in this bit of development that’s going on right now; I’m putting the finishing touches on our first MVP tonight.

Chat is cool, and this plugin sounds cool, too, but I think my board wants to have evergreen topics. (Or do we?)

1 Like

You can, but it’s going to break you in the long run (due to db size), and it adds hosting costs in terms of pageview, storage, bandwidth load.

It is true that there are two distinct forms of communication, and I definitely agree with this characterization:

  • fast lane — chat, disconnected / incoherent words, ephemeral, lettin’ it all hang out, off-the-record

  • slow lane — discussion, coherent sentences + paragraphs, permanent, on-the-record

At the moment, I suggest signing up for a free Slack account and getting a companion chat area. That’s a better strategy than contorting Discourse into a chat room – and Discourse has built in Slack integration.

(You could also experiment with plugins, but again: :money_mouth: . Arbitrary plugins is an enterprise feature for our hosting. It’s difficult for us to dedicate internal resources to pure chat when it’s not really what we do and incurs an opportunity cost; it takes time away from working on other discussion features that have been on our roadmap for a while and definitely would deliver a lot of value to our customers.)

To be clear you can use anything to do anything. Whether it’s a good idea is another matter.


But I guess that’s my central question. What’s so bad about having ephemeral history on a forum?

Is it really just an issue with the cost of disk space?

Is 4chan a “chat room” in your opinion? Do you disagree that evergreen topics are an actual real popular thing that people might legitimately want?

What’s the largest topic size that you think is still in the range of a “good fit” for Discourse? We’ve got a topic with 33K posts on it; I’m guessing that’s too big. Is 1,000 already too big? How much of this is performance and how much of this has to do with usability/social effects? (e.g. would your ideal maximum be 2x if Android phones were faster?)


Any topic under 10k replies is no problem, except perhaps on fairly old Android devices from say 2013/2014. A topic with 100k+ replies is a disaster, unless you are absolutely sure all your users are on fast internet connections and are using desktops or laptops built in the last 5 years.

If you don’t mind the hosting fees in terms of the extra pageviews, storage, etc of long chat topics then Do As Thou Wilt.

Note that it’s not just the storage cost, the organizational cost, the bandwidth cost – it’s the mental cost of search being cluttered with a bunch of ephemeral chat BS basically forever.

As a data point, daily web chat is critical to Discourse as a distributed internet open source project with team members in 8 different time zones. We only “see” each other online, outside our yearly world meetups. We’ve switched internal chat providers 3 times so far in the life of the Discourse project. Every time we switched, we threw away all chat history with zero side effects whatsoever. Zero!


What internal chat you ended up using for your team?

Is Discourse still not a perfect solution for internal team communication, including day-to-day chats?

1 Like

Chat is short term memory, it fills a different need.

We are coming full circle on this, as mentioned

@riking is leading the experiments, and we are alpha testing. It’ll be a bit, we want to get it right and have time to play and test.