It’s Time We Talked About Tags

Sarah Hawk October 20, 2017

Consider the typical sections of a daily newspaper: Arts, Sports, Business, Travel, Local, and World. Any given article belongs to just one of those sections, and the content in each section is quite different, such that some people, for example, may only ever read the Sports or Business sections. These are what we call categories.

Categories are established by staff for strong, distinct, and secure divisions between content. But when it comes to categories, more is not necessarily better. You can think of categories as walls. Four walls make a nice room, sixteen walls might even make a nice house. But a hundred walls would present an impenetrable maze.

Tags, unlike the heavy walls of categories, are nimble, flexible and lightweight:

  • You can have thousands of tags, even tens of thousands of them.
  • Users, if you allow them to, can create their own tags to help organize things.
  • Tags don’t imply any kind of security “wall” or permissions.
  • Multiple tags can apply to the same topic, even across categories. If you were running a music forum, you can tag a topic as both “Hip Hop” and “Electronica”. But if you were using categories you’d have to choose one or the other!

In the last year we’ve made considerable enhancements to tags and how they work:

  • Users can tag topics themselves, taking the onus off staff.
  • You can restrict who can tag by trust level.
  • You can restrict tags by category.
  • Tag groups allow you to limit which tags can be used together on a single topic.
  • Parent-child tag relationships allow you to define which tags can be used in conjunction with other tags.
  • Users can choose to auto watch tags to create a relevant activity feed
  • Users can view a list of all tags, and filter topics by tag.
  • There are bulk tools to assign tags to many topics at once and to rename tags when necessary.

You can build tag systems with your community to organize content in a way that is intuitive for your users. Here is an example of a tag schema.

The future

It’s been a slow burn for tags at Discourse. While Discourse itself was in public beta since February 2013, and reached version 1.0 August 2014, the tagging plugin was initially released in January 2015. It wasn’t until much later that year that they were made visible in listings. Finally, in June 2016 tagging became part of core.

We have two exciting tag enhancements planned for 2018. First up will be the ability to tag personal messages, making it possible to organize your personal discussions as you would label your emails. We also plan to add an optional setting that makes at least one tag mandatory on each new topic.

How can you use tags?

Self-organizing communities

It’s certainly a good idea to start with a few key categories when you launch, but don’t overdo it. Instead of adding yet another category, ask yourself if a tag would, perhaps, be a better and more flexible starting point? If a tag gets extremely popular you can easily graduate it to a full blown category later — and the natural popularity of user-entered tags might help you decide what categories you need and don’t need.

Furthermore, take a hard look at the categories you have today. If they don’t house specific security settings and have very few posts, then do you really need that category? Cull them and use a tag instead. Be harsh.

Hopscotch is an example of a Discourse site that embraced tags wholeheartedly, letting the community organize itself as it saw fit.

Create a customized homepage

FeverBee surface relevant content into specific areas of their custom homepage using tag queries. Tagging specific topics as challenges or reading pushes them into specialized feeds. This helps first time visitors find the information that they’re looking for.

Manage product feedback and roadmaps

On Meta we use tags to group and classify product feedback and indicate where we are on the product roadmap. That gives the community visibility on planned work and a better understanding of what external work we can support.

As Discourse sites grow more numerous and larger, we’re increasingly encouraging communities to explore tagging as a lightweight complement to traditional heavyweight discussion categories. We’ve come a long way with tagging in 2 years, but we’re always open to community feedback on improving tags to make them even more useful. If you have an interesting use case or constructive feedback we’d love to hear it!


GSoC 2017 ends – Outreachy winter round begins

Erlend Sogge Heggen September 14, 2017

Since May this year we’ve been working with a handful of incredibly talented students. Google Summer of Code 2017 has now concluded, and we have some kick-ass new features to show for it. If you’re interested in a similar type of program, you should read about Outreachy further below, which is an internship for people from groups traditionally underrepresented in tech. As for Rails Girls, that is still ongoing; expect an update some time in October.

Four students entered – Four students emerged victorious

Out of the 4 students we worked with this year, all of them passed with flying colors. Not only that, but the projects they worked on were far from trivial.

David Taylor – Discourse Chat Integration

Bianca Nenciu – UX improvements; PMs to email addresses; Canned Replies v2

Jakub Macina – Search filters for tags, images & filetypes; Infinite scrolling in search results

Erick Guan – Login by email link; UTF-8 improvements; Improved Chinese-Japanese-Korean search

A big warm thanks to our wonderful students! We’d be happy to keep working with all of you, so hopefully we’ll still see you on Meta from time to time.

Outreachy – Winter Round

We planned to participate in Outreachy this summer, but with 4 GSoC slots and a Rails Girls project, our mentors were at capacity. We opted to defer our Outreachy participation to this winter.

However, we did in fact get to work with an Outreachy applicant this summer as well! Bianca originally found out about us through Outreachy, but when we realised we didn’t have the mentors available for it we recommended that she apply for GSoC instead, and the rest is history (of kickassery).

Would you like to participate in Outreachy this winter?

Learn all about it here:


Who is Discobot?

Jeff Atwood August 29, 2017

As of Discourse 1.8, every new user who joins will get a welcome PM from discobot:

discobot greeting

Discobot is a natural extension of our original, static welcome PM. However, Discobot is much more than a greeter; it also offers to interactively “play” the Discourse game with each new visitor.

The goal here is to teach people Discourse by inviting them use Discourse, interactively replying to a PM in the same way you’d reply to a real person. If you’re curious about how it works, watch the video above, or create a temporary account at and give it a shot live. Why require people to read a boring old wall of text when they could try their hand at replying to a real PM topic in Discourse instead? Learn by doing!

Note that @discobot has a complete profile, so if anyone wonders who it is, they can learn more by visiting that profile, just like they would for any other user:

discobot user profile

If you’d like to customize @discobot for your site, please do! You can edit the bot’s username, full name, avatar, about me and other fields in the same manner you’d edit it for any user. Just visit discobot’s user page, select the preferences tab and begin editing!

discobot user preferences

Note that the “About me” field is on the Profile subtab, and contains this text by default

Hi, I’m not a real person. I’m a bot that can teach you about this site. To interact with me, send me a message or mention @discobot anywhere.

Feel free to edit all the profile fields, the profile picture, and the about me; changing any of this won’t interfere with the interactive narrative at all.

Although you can’t (yet) build your own interactive narratives, every single bit of text in the narrative can also be customized from Admin, Customize, Text:

editing discobot gretting text

We typically recommend searching for a specific word or sentence to find exactly what you want to change. Remember all text in Discourse can be customized — search for narrative_bot to find just the text associated with discobot.

Discobot will also reply when someone mentions @discobot the name in any topic, public or private. The bot has a few parlor tricks up its sleeve:

discobot topic commands

This is mostly for fun, but there are two badges associated with completing the new user tutorial, and the advanced user tutorial. So you may want to ask @discobot to begin the tutorial narratives if you want the badge, but joined a Discourse before discobot existed.

There are also a few other ways to customize the behavior of discobot in Admin, Site Settings. Just search for “narrative” to locate these settings:

discobot site settings

Here in the site settings, you can:

  • disable the bot entirely :(
  • disable the welcome post sent to new users
  • switch the welcome post from an interactive narrative to a non-interactive quick start guide
  • add a delay to the time the first PM gets sent to each new user
  • disable public replies when someone mentions @discobot

We hope Discobot is helpful as a live, real world tutorial and onboarding for new Discourse users. We also have plans to build an interactive moderator narrative in the future for new moderators, to complement our moderator guide. Give it a try and keep your feedback coming —
we’ll continue to refine and improve our narrative bot experience as we go.