Initial Discourse badge design spec

I think what we’re quickly proving here is that requirements for badge/reputation systems vary greatly from forum to forum, and that’s great! We’re not simple creatures that just wanna see a number go up. There needs to be context and purpose. And we’re gonna need a very flexible system in place to accommodate all these different preferences.

But that’s beyond the scope of v1 for this badge system.

Especially since this feature is thanks to a “sponsorship”, I’m guessing it comes with certain expected specifications that’ll be difficult to argue with. amirite?

I’ll re-submit my proposal to include a simple system preference in v1 to allow badges to shown/hidden on user avatars. This will allow some admittedly brute flexibility, but enough that folks who don’t love the way the badges look can keep them off while the system continues to be enabled and/or while new looks are added via preferences or hacking stylesheets.

[ x ] enable badges
[ x ] show badges on user avatars


Personally I like having separate categories of badges (eg. gold, silver, bronze) more than assigning different numeric values to different badges. Having the number of badges displayed under the username would work better than overlaying it on top of the avatar in this case.

In addition to manual award by staff members and the automated core badges I think it is also important to have support for awarding custom badges in a way that is similar to the automated badges from plugins and/or the API.

I think @haiku’s suggestion of allowing a preferred badge is a winner here. Also has parallels with the groups and title system.


Our intention is not to dictate the design specs and I don’t think that the discourse team would have any of that. The reason we preferred a sponsorship over implementing our own custom modification was that more people (including the core discourse team) will be invested in designing the concepts and using the system. This will benefit everyone, including us. Sure, I have my own ideas but if I can’t argue them well enough that they hold up to the general consent then I’m happy to review my assumptions.

Having said that there are two features that are important to us but both are technical and not about the badge design itself: to be able to manually award badges and to be able to use an API to award badges (so we can integrate with other internal systems).


I think that’s a killer argument against just showing the number of badges owned near the avatar.

While having a score for each badge somewhat improves the situation (since quality badges will be worth much more) I do think that we should be careful with a pure number approach. A forum isn’t StackOverflow where every post has a right answer. It shouldn’t be just about hunting likes, gaining as much attention as possible, or as @Charlie pointed out, systematically going through the forum to satisfy each system badge.

In that spirit I think @haiku has a good point but I’d argue that all the suggested badges are pretty weak for a ‘display preferred badge’ system. I mean who is proud that they used the like button?

How about this:

Features a colored banner in the top right which signals the tier the user belongs to and a maximum of three preferred badges below the avatar and title.

By using tiers and showing them as colored banners (or other custom icons) we can get rid of the emphasis on numbers and the badge icons on the bottom allow you to highlight your favorite badges.

In the background I still think that the system would work by having a value assigned to each badge and then defining different tiers based on the combined values.

I imagine the profile view would be similar to SO where you can see your current tier based on your current points and a list of specific badges that you’ve earned but the system doesn’t emphasize the actual points that much.


I don’t like the tier thing, but like the idea of allowing users to pick 3 badges a lot. (provided they are mid / high tier badges)

Provided we have 3 levels of badges

  1. Trivial badge, ones you can get with very little effort, mainly there to teach you how the system works
  2. Medium badges, you can get them if you put in a bunch of effort
  3. Hard to get badge, very few in the system, a true honour to get them.

The system does not need to automatically assign all the badges, for example here on meta we could have

“Awesome contribution” (gold badge): Submitted a truly special pull request that was accepted.

I think the “level thing” adds clutter there and in many ways is less related to badges. It’s more of a show off my trust level thing.

With the 3 badges there may be room for an extra total count of badges.

We also need mocks for both user page and user card. In the card we would have room for a pile more badges and on the user page we could show them all + select which ones we show off (system should pick one for you if you are too lazy to select)

Agree with Jeff we want an image/icon per badge (we also would need a pool of icons so admins can select a an image for custom badges without needing to upload)

To actual implementation mechanics. I think this should be approached in stages

  1. Implement manual/api driven badge system … nothing is automated at this stage, UIs are established, (selection of badges / admin screens / user screen / user card)
  2. Implement a general rules engine for handling “trigger” based assignments
  3. Implement a backfill for rules engine (so you can catch missed triggers / deletions)
  4. slowly add rules for automatic badges

Key is that we can go live with (1) without needing too much complicated work. Backfilling and rules engines get very complicated and need to be designed with extreme care.


It’s clear that the manual badge awarding (and manual badge definition) has to go in.

If you assume that Discourse sites which are heavily into badging will have plenty of custom manual badges and awards – and @pakl has made it clear that is exactly what they plan to do – there’s plenty of “honor” badges in play.

However, a system of entirely manually awarded badges just leaves me cold. We really need to encourage basic, solid community behaviors with a starter set of automatic badges too.

We don’t have time to come up with manual badges, nor does every other forum on the planet. They need the “mcdonalds value menu” of basic badges to start with to even understand what this feature is for. If everything is manual, we’re not teaching them the purpose of the badging system. It also means meta and other forums couldn’t really participate in the beta. That’s all dangerous.

I don’t think this feature makes sense unless we can get 10-12 standard auto-awarded behavior badges in, too.


Also from a User-Experience point of view, seeing that everyone else has Badges to their name while new users don’t is very discouraging. While, if you receive automatic badges for good conversational behavior (generally everything we take into account on the way to become a trust_level_1 member), this is very encouraging. I do agree, that even in an mostly manual system, we want from the start to have some build-in good-conversationalist-badges. And though I see the point of having a “general rules engine”, I’d vote for starting with hard-coding these few for the first iteration instead.


I completely agree, and I think that manually awarded badges should be only used in certain instances.

The primary reason for badges is to encourage solid community behavior, and making the rewards automatic through the system and based on specific rules is the best way to do that.

Anything assigned manually ends up with too many “human nature” problems and will be subjected to cliques, the buddy system, whether or not you kiss the moderator’s ass.


To be clear, I am not objecting to an automatic badge system. It must happen.

I just want all the UI for manual badges and badges in first, its is a FAR simpler system to build. Automatic badges are VERY complicated to build right I have built systems like it twice, I should know.

We rewrote the automatic badge awarding at least twice at Stack Overflow; we omitted “Reason” from the first pass and had extreme perf issues. I need to be involved in the backend design of the automatic badge system and probably build the architecture myself.

Manual badges are straight forward to build and should be done first. Once that part is done the automatic system can be built and will require 0 front end work.


I’m jumping into this topic late, but I do want to quote @codinghorror from a post a year ago

I guess my immediate reaction is, all that flair under the user name is a big part of the problem with existing forums. That doesn’t bother you even a little? It’s horrendous, a trainwreck, it makes me rubberneck like at the scene of an accident.

Which, so you don’t have to click, was referencing this screenshot of another forum’s implementation of “Badges”.

Please make sure that doesn’t happen to Discourse :smile:

Personally I like the way that Stack does the badges on the “topic” pages by just giving a tiny number next to them. Because the reality is that those badges are for training user behavior first, and for showing off second. In fact, if you only have a couple of badges, it’s barely worth showing them on every single post on every single topic.


Well, I was trying to! I proposed a number! Could also be a glyph and a number or even “3 badges”.

I still like @haiku’s idea of letting people select ONE preferred badge to go there. One!

Personally I think the badges should be in the user info popup and nowhere else, other than maybe a number, or at the worst, ONE preferred badge to show off.

  • When you are reading through a topic on a forum that you are unfamiliar with, you don’t need to know how many random badges that person has managed to get, or whether they have edited one of their own posts at some point.
  • Anything important to know about that person, like “Moderator” or “Co-Founder” can easily be shown using the titles feature.
  • When you’re on a forum that you are familiar with and read often, seeing the same clutter all the time on every post will just get… cluttery.

It’s not a huge deal as long as the forum owner can configure it somehow.

But I do have to ask myself one thing:

What kind of badge would be so interesting and important that I’d want to show it underneath my user icon on every single post throughout the forum?


Totally agree with this in exact order of preference.

And that too.


I agree about making stuff optional.

However, here in my home on meta I would really like to grant a “great contributor” badge to everyone that submits say 10 accepted pull requers and have pretty (unobtrusive) glyph displayed under them on all posts they make. Cause they should be proud of it, its a huge achievement.

Just like pilots walk around with wings

I understand this can become an arms race, but 1-3 discrete small glyphs really is not such a big deal, I agree it should be configurable as an option by site admins and realize that some will abuse flexibility here.


So much agreement here. No one will care about badges if basic behavior earns you a badge.

Probably bad idea: The option to display a rank in the popup user card. Like out of all the site users, if this user is in the top ten in badges, number of posts, number of likes, time spent on the site (sometimes a dubious distinction).

I absolutely agree here. I don’t think badges add much to the actual conversation and should be as minimal as possible to avoid interfering with it. I’m for numbers all the way with highlights in the pop-out and deeper info on a user’s profile.

Consider the approaches on behavior influence through validation:

  • How do badges validate my behavior to myself?
  • How do badges validate my behavior to others?

When I want personal validation, it’s important for me to see why I earned the badge and I need the ability to proudly gaze upon my badges. First and foremost I feel proud for achieving… I might feel good about bragging later, but that’s secondary to the feeling of achievement.

If I want to influence others the quantity of my awards feels more primary than why I was awarded. We know this dude is important because of quantity. Even when these things are labeled we’re not 100% sure what they mean.

The same goes for more descriptive names like these stackoverflow badges. We kind of know what they mean… but I don’t know how specifically “Famous Question” happened by looking at it. I have to be curious enough to click through to learn the actual value. Am I gaining anything by seeing a bunch of people with words under their names unless I click through and learn about how I can earn those words?

If the real value comes with a click-through they may as well be numbers.