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!


Custom Local Avatars

Jeff Atwood August 29, 2013

One of the most requested features in the last few months is easily custom avatars. Although Discourse has always supported standard Internet-wide Gravatars based on the account email address, there were some long-standing concerns:

  • Some people simply don’t like Gravatar, for whatever reason, though as a WordPress company they are (at least in my opinion) one of the more ethical and responsible choices.
  • Gravatars may not function inside corporate firewalls as they have to reach out to an external public website to generate the avatar images.
  • Gravatar very recently changed their signup process so it is a bit more work; you have to have a WordPress account. One of the core Gravatar developers was kind enough to stop by our forum and explain the rationale for this change.
  • There are concerns about reversing the email hash used to generate the Gravatar and harvesting emails. (You can mitigate this by using plus email addressing if you are concerned, e.g.
  • It is another third party dependency required for your forum to work, for better or worse.

With all that community feedback in mind, we began to prioritize local avatar support, and I’m happy to announce that local avatar support is now here, tested, and will be enabled by default in the next numbered release!

Once enabled, you’ll see a slightly different edit button on your user preferences next to your avatar:


Selecting edit brings you to a dialog where you can select either the default Gravatar based on your email address, or a completely custom avatar of your choice.


Once you upload an avatar, you are free to switch back and forth at will, or change your custom avatar at any time.


A few caveats:

  • Avatars must be square, and we’ll show a warning if we have to auto-square the uploaded image.
  • Animated GIF avatars are (thankfully) disabled by default, but if you hate yourself and your discussion community, you can optionally enable them … but if you do this, I want you to know that you are a bad person and you should feel bad. I’m just saying.

We continue to love Gravatar as an open web service that makes it easier for people to “automagically” have avatars on every website they visit with no effort at all — but Discourse is a rainbow system of many options and you should be able to configure it exactly how you want.

We hope you enjoy your new custom local avatar option!


Improved Image Handling

Jeff Atwood July 5, 2013

Although Discourse is open source discussion software designed around the fundamental concept of paragraphs, there is no denying that in this era of pervasive broadband, online discussions are as much about images and videos now as they are about words.

With Discourse, we wanted to make it as easy to post a picture as a paragraph. We had good support for images at launch:

  • You can drag and drop images (yes, more than one, even) into the composer.
  • You can paste images into the composer using command+v or ctrl+v*
  • You can paste a link to an image into the composer, on a line by itself. We automatically onebox the image and make it show up in your post.
  • You can use the image upload button on the composer toolbar.

But our image support was mostly designed for small images that fit in the discussion. If some user uploaded a giant image, or pasted a link to a giant image, everyone had to suffer through downloading that massive image – and there was no convenient way to see the image in larger size. Furthermore, forum owners could be on the hook for potentially massive bandwidth bills if a topic containing a few huge images got extremely popular.

Well, no longer! Through the contributions of the amazing ZogStriP, Discourse now has outstanding, comprehensive, and automatic thumbnailing support for images.

Now if you paste in a link to a giant image …

You’ll automatically get a proper discussion-sized thumbnail for that massive image rather than, well, a massive image.

We also show metadata for thumbnailed images in an overlay at the bottom when you hover over them – so you know how big an image you’re dealing with, and what the file size is if you want to download it. It’s also a hint that clicking the image will lightbox it and display it as large as your browser will allow.

Copying and pasting images from the clipboard*, even enormous images, works the same sane and safe way.

Because our image handling for large images is so much better now, we upped the default maximum image upload size from 1 MB to 2 MB. We feel that Discourse now has some of the best default image handling of any community discussion software out there. Did we mention that Discourse is completely open source and free to the world, forever?

Feel free to play with any of this new functionality (which is now enabled by default in all Discourse installs) in our sandbox at!

* You can only paste in images if you are using Google Chrome. We really, really wanted to get this working on Firefox but were unable to without madness.


For more blog posts, visit the archives