Discord and Discourse - Better Together | Blog

Here’s a question we get a lot — Discourse and Discord. They sound awfully similar, but are they the same?

This is a companion discussion topic for the original entry at https://blog.discourse.org/2021/05/discord-and-discourse-better-together/

I love that you’re addressing this very current issue. But I feel like there is still a lack of good workflows, best practices, and ideally tools to make working with these two separate products more efficient, pleasant, and smooth. This is true despite a very similar (albeit more broad) blog post from 3 years ago, that generated a little discussion (and some requests similar to what I’m about to elaborate on).

I’m going to throw out a few examples of what I’d ideally like to be able to do to harmonize e.g. Discord and Discourse, recognizing that none of it may actually be possible due to limitations of Discord or Discourse API, or for other reasons. But I think it’s worth thinking and talking more about this and getting into specifics, because the sync/async is a present issue for a lot of communities, and no ideal solutions yet exist.

First and biggest would just be some (seemingly) simple tooling around making it easier to move between one system and the other. Being able to link to a Discourse #category in Discord just like that, and likewise with a Discord channel in Discourse, so I don’t have to go copy a link in one or the other. Better yet, topic search embedded in Discord so I can find and post a link without leaving Discord. Also being able to generate an invite to one from the other immediately with just a hotkey or something, in either system.

Your own prior article Effectively using Discourse together with group chat | Blog suggests things like

New user: How can I do X?
Helpful user: Good question. Please re-post this to our public forum so that any answers you receive can be searched for and read by anyone else who might be asking the same thing.

This is a fine policy to handle some of the problem, but from a UX perspective it is not ideal for the user. Instead I would love to be able to click on their message in Discord, then with a single command generate an invite link to the forum, sending them to the correct category, and ideally even initiate the “New Topic” action after they sign up, and bonus points for copying the actual contents of their message from Discord into the Discourse topic.

Maybe it also auto-biases to Discord login integration, e.g. user clicks link in Discord, new browser window opens to the forums, with a pop-up that says “You’ve been invited to join the X Discourse community! Click Join login with your Discord account, or choose an alternate login option to the right.” Then once they sign up, it takes them to new topic, maybe.

The suggestion to “wait until chats finish then generate a summary” could also really use some help from the tools. I see you do have a Slack tool that does some of the work semi-automatically, which is great. I haven’t used it, so I don’t know how it handles things like usernames, which would ideally connect with any existing Discourse user names, but more importantly it would be great to have such capability for Discord. I see in that prior blog post there’s an invitation for collaboration from other chat apps, but I’m guessing that didn’t happen. What would it take to incentivize this sufficiently? Could it be made even more powerful, operating on a selection rather than “last 20 message”? And, if this is not already part of the Slack version, auto-generating a link back to the chat in the forum post would be nice too.

I’m really just spit-balling here, but I think at least some of this would really help.

Personally in the long-term I’m really hoping that a single tool emerges that better combines both approaches, sync and async. I know there have been some recent discussions of high volume Discourse topics maybe being able to morph into chats, perhaps with some ephemerality. I’m hoping that this whole concept gets some really deep consideration and a bit of a “blue sky” approach to providing the best set of tools for communities to actually integrate the values of both approaches.

For me this would ideally be realized within Discourse. Perhaps one could spawn chat anywhere, connected to an existing topic, or not (category-level chat would be cool). It could perhaps work a bit like Slack threads in that it “branches” off somewhere, i.e. you’re reading a topic and get to a “reply” that is actually a visual summary of a real time chat that happened, “Chat generated 243 messages on 5/31/21 with users x, y, z [avatars]” or whatever. A modification of the existing topic summary bar, specific to chat, with styling to differentiate it, and click to open the chat window to review it, or expand in-line or something.

Chats could be auto-archived or even deleted, if desired. But ideally tools would be provided to summarize a chat back into the topic, perhaps using familiar Discourse message editing functions (multi-select, etc.). Mods could do this, or users could select one or more messages of their own to contribute back to the topic, if desired. If they don’t after a set period of time it’s all archived (optionally?). For category-based chats, one could “promote” a chat message to a topic, as well.

Anyway, there are a zillion possible ideas. But this seems like a big area of potential value if it can be done right within Discourse. Lessen the tension between e.g. Discord and Discourse, and the “rigidity” of the Discourse approach, while maintaining the benefits of both, and I think it’d be a big win. Easier said than done, but a worthy challenge for sure!

Edit: also I know there has been a ton of varying discussion around similar subjects in the past, e.g.


Babble is cool, although it doesn’t seem that well supported. More importantly it doesn’t solve most of the problems I’m talking about above, though it does at least integrate everything into one place, which does make it easier to move between interaction modes…

Edit 2: Also-also, there should probably be chat-only categories/“channels”. But again with the possibility to “promote” a message (or series of messages?) into a topic. And now I wonder if I shouldn’t have posted this as a new topic somewhere. Oh well. :grinning_face_with_smiling_eyes:


You maybe interested in "Discord Bot": run one on your Discourse server & keep things in sync

It’s a general integration plugin that can link Discord to Discourse in a couple of ways.

It’s designed to be extensible. It uses the Discourse events framework and the Discord API Ruby gem.

PRs for additional features welcome.


Nice, thank you. I’m definitely hoping for deeper/more sophisticated integration which may be out of the scope of what you’ve developed. But it’s definitely a nice plugin to have in the meantime.

By the way, more generally, I subsequently discovered this earlier post from Sam that shows this has been on the Discourse team’s mind for quite some time! Some great details on his thinking are over in that thread, this is just some of it: