Effectively using Discourse together with group chat

Erlend Sogge Heggen April 10, 2018

Courtesy of Claudio Nichele and Jon Worth -
Most modern businesses and organisations today are using some kind of team chat application. The usual suspects are Slack, HipChat, Discord, Mattermost, Rocket Chat, Riot, and Gitter, to name a few.

While chat is immediate and primarily synchronous, communication in Discourse is gradual and asynchronous. We’ve seen far too many community managers treat these two modes of communication as competitors. Quite on the contrary, chat and forum communities can complement one another beautifully, and we aim to show exactly how by breaking it down into three different levels of understanding.

  1. Ephemeral vs Permanent
    What is the difference between a chat and a forum community
  2. Strengths and Weaknesses
    When to use which tool
  3. Complementary Workflows
    How to use both tools together most effectively

Ephemeral vs Permanent

The discussion that takes place in a chatroom is best described as ephemeral, meaning:

Something which lasts for a short period of time.

While a chat platform might keep a searchable record of all your conversations, the highly unstructured nature of chat makes it unsuitable as a long-term storage of knowledge.

In direct contrast to the inherently ephemeral nature of chat, forum discussions are permanent:

  1. Without end, eternal. Nothing in this world is truly permanent.
  2. Lasting for an indefinitely long time. The countries are now locked in a permanent state of conflict.

One mode of discussion is not better than the other. They both have unique benefits that go hand in hand with best-practice use cases.

Strengths and weaknesses

Chat is an essential communication tool, but when used excessively it can have a negative influence on community health. Whereas with forum communities, perhaps the most common misstep is to start one before your project has the necessary momentum, and you end up with a ghost town.

At Discourse we like to think of chat and forum as your extended team’s collective “short term” and “long term” memory, respectively.

Group chat is great for…


  1. Minimum viable communities
    Get two people in a chat room together and you’ve got yourself the beginnings of a healthy community. As long as there’s some chatter on a regular basis, the room will come off as lively and inviting to other prospective participants. This is a great onboarding strategy in the early days of a community, but there is a hard limit on how far it can scale. Doing things that don’t scale can be a winning strategy for startups and burgeoning communities alike; the key is knowing when you’ve outgrown your initial growth strategy.
  2. Real-time resolutions
    “where’s our invoice template again?”
    “I need fresh eyes on this weird query”
    “welp, I think I just broke something”
  3. Urgent notifications
    Servers are on fire!
    An urgent email was just received!
  4. Socialising
    While social chatter is a rare occurrence on a forum, this is the norm in chat, and it happens in every room, not just a designated #off-topic channel. Give it a little time and you won’t be able to avoid it: it’s about to get personal.There’s something about being present together in the same slice of time, the here and now, that lends itself to Getting Real. Getting personal on a forum feels more like broadcasting, made even weirder by metrics (Likes, Replies, View) that can unintentionally imply that Bob’s piece of personal news didn’t “perform” as well as someone else’s. Chat imposes much less scrutiny on your shared content.

You’ll find this list to be nearly identical with that of Jason Fried’s excellent writeup on group chat on behalf of Basecamp. While eerily similar, we really did come upon these findings independently! The proof happens to be permanently recorded on and in many other communities where we discussed this.

Forum discussion is great for…


  1. All-inclusive dialogue

    The asynchronous nature of a forum community effectively lowers the bar about as far down as it can go. You’ll get a much greater diversity of input if you solicit feedback from anyone who’s available some time in the next 24, 72 or 168 hours as opposed to right now.

    Another little discussed benefit of “slow” asynchronous conversations (fun fact: very few things in life, especially in business, are actually URGENT) is that it encourages walking away from the discussion for a while, which is scientifically proven to improve critical thinking.

  2. Communities of scale

    Similar to what version control did for code and wikis did for encyclopaedias, community platforms like Discourse have long since solved the “too many chefs” problem for discussion at scale. Hundreds or even thousands of people can discuss an equal amount of topics simultaneously on Discourse because (1) discussions are broken up into logical topic blobs and (2) long-form input is strongly encouraged over rapid-fire back-and-forth debating.

  3. Knowledge storage & distribution

    The permanence of a Discourse topic makes it an excellent storage of knowledge. Some will argue that forum posts become outdated, but we’ve found that when a particular solution stops working then users will promptly resume the topic discussion until it arrives at a satisfactory solution once more.

    This is further helped by

    • Search-friendly content
    • Discoverable content, helped by Categories, Titles, Participants, Top rankings and strictly linear discussions with minimal digressions and noice.
    • Extra exposure for content with many Likes
    • Marking solutions as the official answer
    • Collaborative editing with full revision history
  4. Civilized discussion

    Most current group chats have very limited moderation controls. And while they may eventually catch up, the experience will always be sub-par simply because it’s real-time. If you hold someone’s comment for moderation in chat, that’s incredibly frustrating because you’re expecting live discussion. On a forum on the other hand the expectation is that you’ll get a reply within a few hours or even days after posting, so if your post gets flagged? No biggie, you can wait.

Complementary workflows

So let’s assume you’ve already made the wise decision to use both chat and Discourse for your community and you understand when to use which tool. But how do you best use them together?

Continually enforce your communication policies

It’s important that your project’s community leaders (which should ideally translate to every major contributor to your project) actively enforce the norms that you’re striving for. Lead by example and politely nudge newcomers in the right direction when they’re asking for guidance in the wrong place or in the wrong way.

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.

We’ve heard of some communities utilising bots with some success for this type of best-practice enforcement. If anyone has any such stories to share with us, please send us a mail at!

Feed highlights from Discourse into chat

Important discussions in Discourse should be fed into your chat for extra exposure. There are many ways to do this:

It’s important to note that you shouldn’t be mindlessly feeding all of your Discourse discussions into your chat. Make sure you only cross-post the major highlights, i.e. just a few select categories or tags and the occasional manual curation.

Let chat conversations run their course, then post a summary

When a conversation takes place in chat that is related to an existing thread on Discourse, point out the link to the Discourse thread in chat. Don’t try to move the conversation over while it’s in flight though – that’s often disruptive. Instead, if anything new came out of the chat, encourage the primary chat participants to summarize it in a follow-up post on the Discourse topic.

Similarly, any chat content with lasting value to other community members should be exported over to Discourse once the initial burst of chatter comes to an end. Examples include:

  • team members walking through a problem together and arriving at a solution
  • deep conversation that is sure to continue for multiple days
  • new user who asked a simple yet frequently asked question
  • minutes of a meeting

Specifically for Slack, we have a very handy tool to help with this.

/discourse post 20 will create a draft topic containing the last 20 slack messages. See this how-to for more info.

This is currently only possible with our Slack integration. We welcome other group chat services to talk to us about how to make this possible for their platform. Please contact

For some further reading, check these out.


Also interesting:


How Does Team Discourse Use Discourse?

Sarah Hawk March 4, 2018

As we claim on our website, we use Discourse as our primary team coordination tool to build… Discourse!

That means escaping email silos and minimising the number of disparate communication channels required to manage a fully distributed team. We are able to keep distractions like calls and meetings to a minimum and focus on actual work, while still feeling connected to the rest of the team.

When I first joined the Discourse team I found this way of working unusual. I was used to Trello, Google Docs, Basecamp, Zendesk, Todoist and Slack.

Most organisations I have worked in tried multiple permutations of every conceivable version the above. It took less than a week to rejoice in how unencumbered I felt to be rid of all those systems. I felt as righteous as I do after an epic spring cleaning session.

We do use Rocket.Chat for ‘quick answers’ between team members but that data is ephemeral and has no long-term value — as anyone on a free Slack plan knows. We push important long-term knowledge across into Discourse. We also make light use of Google Docs as shared permanent file storage, of which we don’t need a lot, but that’s it.

We run two Discourse instances:

  1. Our public facing Meta where we interact with the community, provide general support, and gather feedback.
  2. A private instance where we have internal discussions and house our internal knowledge base and runbooks.

But general discussion isn’t the only thing we use Discourse for.

Product Management

We use Discourse to publicly manage our product roadmap. New feature requests are made by community members in the features category by following this process. The requests are reviewed by our team and approved features are moved through the roadmap using tags for visibility.

We use:

  • Tags to provide progress on feature requests.
  • Discourse Assign to allocate work to team members.

Product management workflow

Task Management

We use a category on our internal instance of Discourse to manage tasks. New tasks are written up in the todo category. In some cases they are immediately assigned and in others, we tag a group to give visibility of the task so that a team member can claim it using Discourse Assign. Once a task has been completed the topic is closed. We use topic timers to delete short or ephemeral todos when no record is required.

We use:

  • Discourse Assign to allocate the job to a team member.
  • Topic timers to close or delete topics once the task is complete.
  • Tags to organise tasks into business groups.

Task management workflow

Support Ticketing

We also use Discourse as a private email support portal which allows our entire team to share the support load. Anyone can email and we handle those interactions in a central discourse mailbox, as private group messages.

Support inbox

Staged user accounts are set up, allowing us to store contact history against an individual. More details on how that works here.

This setup means that everyone has full visibility of the open tickets and can also easily search through past tickets, either to learn or to stay abreast of what has been discussed or promised.

People can jump in seamlessly across time zones. Discourse notifications alert us of incoming requests. We can tag people in when we need them, assign team members when a task needs to be completed, bookmark messages for follow up, set topic timers to nudge people and we can use whisper topics to support each other, make notes and troubleshoot as a team.

We use:

  • Tags for private messages for organisation, similar to how labels work in Gmail.
  • Discourse Presence means that we don’t accidentally reply to someone at the same time.
  • Discourse Assign allows us to give or take ownership of a support issue.
  • “Whisper posts” let us privately research or troubleshoot as a team, keeping all the relevant information within the topic.

Support ticket details

Tip: Edit the post titles so that the message is identifiable by everyone at a glance.

Knowledge Base

We use Discourse as both a public and a private knowledge repository. The howto category on Meta is a crowdsourced knowledge base which houses community written tutorial topics that describe how to set up, configure, or install Discourse using a specific platform or environment.

Internally we use our private Discourse instance to store run-books. They are a great way for employees in mismatched time zones to document processes so that other employees are able to be productive without having to wait for a response to a question.

We use

  • Subcategories for grouping similar topics
  • Tags for categorisation
  • Trust levels to restrict posting to more experienced Discourse users

We believe strongly in using Discourse to help us build Discourse, and we’re constantly improving both our process, and Discourse, to make it a better team collaboration tool.


Discourse for Developer Communities

Erlend Sogge Heggen May 5, 2017

Most early adopters of Discourse were developer communities, as is often the case with open source projects. Our own community is also a development-centric community, so we’ve been mindful of this use case since practically Day 0.

Consequently, Discourse caters to a lot of developer communities. We reached out to 30 of them to learn more about how they use Discourse.

How does your organisation use Discourse?

We use Discourse for a number of public and private communities, the most prominent of which is the Atom and Electron community message board at This allows us to provide tech and community support directly to the people that are curious about, use and build on top of Atom and Electron. It also allows the community to provide support to each other in a healthy and positive environment (a rare thing on the Internet these days) and offers the ability for them to collaborate on projects or communicate ideas to the development team.

~ Lee Dohm, GitHub

Discourse is used as an open community platform for Kotlin-related discussions. In addition to other feedback channels, it helps the team to get direct feedback from language users and contributors in a convenient manner, and discuss all the issues and suggestions with all interested parties.

~Mikhail Vink, JetBrains

What are your 3 favourite things about Discourse?

Ordered by most frequently mentioned:

  • Easy for new users to get started with; Clean and simple interface
  • Easy branding and moderation tools
  • It’s much easier to search and reference older posts [compared to mailing list archives]; great search engine indexing
  • The feature set around creating posts is really fantastic; developers tend to be fond of Markdown
  • The ability to customise the languages that can be used for code-highlighting and select one as the default, lowering the barrier for people to format correctly in the most used language on the site
  • Upvoting (hearts) without downvoting
  • Category-level subscriptions
  • Browser & phone push notifications for new posts
  • Spam detection
  • Tries to answer questions when you ask one
  • Community digest by email & “unread” on the web (for those who can’t keep an eye on the web site all the time);
  • Converting a post to a wiki post, so everyone can edit it

What would make Discourse better?

  • We’d like to install custom plugins on the hosted plan.
    All our hosted forums (besides Enterprise) runs on a multisite cluster, which makes it technically difficult to enable plugins on a site-by-site basis. It also has serious implications for security and customer support. In short; this isn’t going to change in the short term, but we’re thinking about it.
  • not obvious how to set up as a mailing list-style user rather than a web forum.
    See “Discourse vs Mailing list” and and this recent discussion about mailing list mode for categories.
  • More built-in themes so that not every Discourse board looks the same.
    Native themes are now a thing! We’ll be adding at least one new alternative theme out-of-the-box.
  • Better moderator and user documentation, API documentation.
    We recently applied a cleaner “box layout” to our #howto category so it’s easier to navigate. For API documentation, can also check out which we launched about a month ago.
  • smarter anti-spam detection (we get lots of false positives)
    Our automated antispam is powered by Akismet, but does require some training to “learn” what’s right and what isn’t. If you know of a better automated spam protection system, do let us know!
  • Importing discussions from Github. In essence ways to move a lot of discussions of GitHub, while keeping the technical debate on Github.
    We have an official GitHub-to-Discourse export tool that does exactly that.
  • Mark as unread/remind me later about this. Sometimes I read a topic but don’t have time to deal with it now, and forget to come back to it later because it’s not marked unread in the list anymore.
    See this topic. As of Discourse 1.8, staff can set a timer on a topic to remind you to come back to it, as well.
  • Every topic could be treated as a 1st post (the article or news item) and subsequent posts (the comments).
    This sounds like Embedding Discourse comments via JavaScript, which we officially support.
  • We get a lot of low-information posts. Having knowledge-base-like feature would be great to answer common technical questions. (Maybe this exists already and we just don’t use it?)
    See wiki-posts and structuring a category as a FAQ via boxed layout.
  • The “all categories merged” display can be confusing for people used to the classic “first select category, then see list of topics” layout. We’d love to have a “Splash page” that has big links to the individual categories, and maybe the unified topic list below that.
    You can select the categories page as your homepage. In Discourse 1.8 we also added a “giant clickable / tappable boxes” style for categories which can be clearer for new users. We’ll look at extending that to the categories homepage as well.

Also mentioned:

To follow up on any of those, please search meta.discourse for existing topics or start a new discussion.

As always, we’re immensely thankful for having customers that readily engage with us to improve Discourse. Big ups to Twitter, Kirby, Rancher, Mattermost, TrueOS, Serverless, OpenAI, Appium, EVE tech, Rust lang, Kotlin lang, Julia lang, Atom, Peplink, Jekyll, Ember, Chef, .NET foundation, GitHub, Docker, Hubspot and Grafana, as well as the self-hosters, Hugo, React, Nextcloud, Go lang, Vue.js and Libretro.

Keep the discussion going!


For more blog posts, visit the archives