Introducing Discourse Chat (BETA)

We allow reply to messages but no full “Slack thread” style things.

embedding in another site is not in our plans at the moment.


What are your plans for mobile? Specifically I’m interested in evaluating how this could fit for our workplace (ie. eventually replace slack).

  • Would you be receiving message notifications through Discourse Hub / PWA Web Notificaitons?
  • Any plans for non-web-based options? Web-based chat apps on mobile seem like a bit of a hard sell.

Excited to try out the beta. :slight_smile:


We already do.

I use DiscourseHub and it is A-OK, in fact I am not feeling any personal gaps compared to my previous use of Mattermost.

We will assess stuff as we go but are not approaching this a-priori with the preconception that Discourse Hub / PWA is doomed.


Great to hear! I’ll have to try it and see. If you’ve managed to make a PWA app that truly feels as snappy and responsive as mobile native, that would be a massive achievement!


And ’we’ means the hosted version? Mine doesn’t show any kind notifications.

Eh… or do you mean mentions? Those are showing. My bad… showing notifications of all possible chat traffic would be pain in the tender places.

I propably should delete this comment and drink another cup of coffee.


To follow up on this, honestly I’m pretty impressed. There’s a few things that stick out as clearly non-native, which might be a sticking point trying to convince people away from slack. Luckily these are all UI tweaks:

  • Buttons are incredibly small. Often by 50% or more. This is a primary complaint others have noted when I float the idea of using the rest of Discourse as a PWA, and it carries over to the UI here. This is also an issue for accessibility.
  • Buttons are missing press-states. On Android buttons show the ‘default blue square’. This immediately makes it feel like a website. It actually adds to the feeling of lag, at least for me.

But overall, nice work!


hi, just wondering if there will be a way for users to remove themselves from Personal Chats they no longer wish to be part of?

Thank you


Yes totally we plan to support our existing guards like ignore and mute, and respect allow other users to send me personal messages


AFAIK no, but it is in roadmap.

Mine, and some my users’, channel list is now a bit… overcrowded :wink: So, hopefully that option comes ASAP. Sure, I know we are doing testing here but this is somekind catch22-ish situation now — should do testing, but testing makes chat unusable :sweat_smile:


3 posts were split to a new topic: Personal message chat list is too long

Did a test yesterday with about 40-50 users on my forum simultaneously. It was during 90 football match were we replaced live forum with chat.

Given my team lost I got lots of critical feedback. It was a good cat to kick.

Discovered a few things.

Seemingly issues associated with number of users. Some people reported they were unable to log on, others got booted off. The same users had no issues later on. No errors messages were reported to the user.

Posters didn’t like being able to to use the emoticons on their own posts. They also didn’t like how posts got amalgamated, if they posted 2 or 3 times in succession. They would much prefer seperate posts.

A few struggled with being able to join to leave groups. This turned out to be more of a IT literacy issue. However clearer icon/ better description in drop down might help.

What people liked is the privacy on an otherwise open forum. The ability to replace a few WhatsApp groups.

Key things for them (given I explained it as forum = stuff you want to store vs chat = calling the referee a muppet) is ensuring chat is transient. Something like all chat older than 14 days is deleted. Or entire chat rooms self destruct after 14 days. This was part of the privacy side.

The ability to manually delete chat rooms would also be great :+1:

They liked how posts moved to forum where linked back to the chat.

Hope feedback helps :blush:


Agree - to “archive” channels (AND personal chats) you never want to see in the list would be great.


Thank you heaps for the feedback!

The scalability issues do sound concerning, we would like to get to the bottom of it, we certainly do not want you to have any noticeable issues on a 50 person chat. Can you tell me a bit more about how your forum is set up? Digital ocean plan?

Certainly sounds like a reasonable setting here, by default you should not be allowed to “self” react, just like you can not “self” like. Added to our list.

Absolutely, we plan to add chat retention rules fairly soon. By default we are thinking about keeping this at 90 days, but you will certainly be allowed to push this down to 2 weeks.


My community has the opposite need. We often react to our own messages, especially when setting up polls.

For example, we could ask:

Vote :+1:t3: or :-1:

Then we’ll react to the message with these options so that other people just need to click on the emoji to add their vote.



I am running Discourse on their $40 plan. That’s 4 vCPUs, 8gb ram and 60GB storage (which is about half used). Created using discourse instructions rather than DO image.

Generally it’s a bit overkill for my forum, but it’s generally robust for the high traffic during games which varies between 50-130 posters (on average about 80) making about 600 or so posts in one thread in 90 minutes.

I use a few plugins which don’t seem to affect performance. Legal tools, who is online, patreon, reactions.

Happy to do another test in a couple of weeks. Checking the dashboard in DO the spike for CPU usage at 20% (fair bit lower than typical match day), and bandwidth was what I would expect.


It seems that discourse-math is broken in chat, at least for KaTeX, and this script fixes it:

;(function () {
var loadScript = require("discourse/lib/load-script").default;

function ensureKaTeX() {
  return loadScript("/plugins/discourse-math/katex/katex.min.js").then(function () {
    return loadScript("/plugins/discourse-math/katex/katex.min.css", {
      css: true,
    }).then(function () {
      return loadScript("/plugins/discourse-math/katex/mhchem.min.js");

function decorate(elem) {
  var $elem = $(elem);
  var displayMode = elem.tagName === "DIV";

  if ($"applied-katex")) {
  $"applied-katex", true);

  if ($elem.hasClass("math")) {
    var tag = elem.tagName === "DIV" ? "div" : "span";
    var displayClass = tag === "div" ? "block-math" : "inline-math";
    var text = $elem.text();
    $elem.addClass(`math-container ${displayClass} katex-math`).text("");
    window.katex.render(text, elem, { displayMode });

function katex($elem) {
  if (!$elem || !$elem.find) {

  const mathElems = $elem.find(".math");

  if (mathElems.length > 0) {
    ensureKaTeX().then(function () {
      mathElems.each(function (idx, elem) { decorate(elem) });

setInterval(function () {
    Array.from(document.querySelectorAll('.tc-message-container')).forEach(function (el) { katex(Discourse.$(el)) })
}, 1000)


Another bug: trying to render a message from a deleted account results in js application crash.


  1. create a test account apart from your account
  2. send a chat message using that account
  3. delete that account
  4. browse the channel using your account
  5. open devtools and see the error log

Thanks for the plugin!

Is there a way (as admin) to delete/remove chat channels?

1 Like

It’s currently in the works. See the bottom of Sam’s post here:
Introducing Discourse Chat (PRE-ALPHA) - #55 by sam


There used to be a flag for enabling or disabling chat in category settings. Did that get removed?