Initial Discourse badge design spec


(Jeff Atwood) #1

Thanks to a generous grant from an awesome member of our community we now have the opportunity to hire someone on a contract basis to work on implementing a basic badge system in Discourse.

But first, we have to explain what the project is, and solicit feedback on it. Goals:

  • A simple badge system, by that I mean implementable in a reasonable amount of time (6-8 weeks?).
  • Something we are comfortable folding into core, and possibly enabling here and a few other willing partners, but will default to off for quite a while.
  • Something with a solid base architecture that we can build on later to add more features.
  • The contractor will work directly with the Discourse team, the project sponsor – and you, the community!

So what should a simple, solid V1 badge system look like? The Discourse team discussed it and here’s what we came up with:

What is a badge?

  • Name
  • Image
  • Description
  • Single/Multiple allowed
  • (optional) ruleset for auto-award

I believe the images are very important here, because the value of a badge likes partly in the cool image (sticker, if you will) that you get associated with your account.

Staff should be able to create an unlimited number of manually awarded badges. The automatic badges will probably be hard-coded in V1 because we don’t want to implement a complicated rules engine. Perhaps there could be some rough parameters, but that’s it…

Where will badges appear?

I think a simple number underneath the username in the left gutter is best. The number indicates the number of badges you’ve earned. I thought about another glyph like a trophy or star, but I think letting a simple number send the message does it without all the weird emotional baggage of a glyph.

Clicking the number will take you to the badges page on the user’s profile. The badge page should show:

  • list of badges awarded aka “trophy case”
  • when they were awarded
  • by who, if manually awarded
  • why, if automatically awarded
  • how many times they were awarded (if multiples are possible)

How will badges be awarded?

  1. We must support manual award of badges by staff members for any reason, to any user. This is essential.

  2. We should also have a core of 10 badges that are auto-awarded for reasons that support our goal of civilized discourse. In other words, the badges encourage specific behaviors on the forum that help people have better conversations. These 10 should be exemplary, clearly excellent examples of good behaviors.

How will users be notified of the badge award?

Presumably through the notification stream as usual.

What should the 10 initial auto-awarded badges be?

And more importantly what positive community behavior do they encourage?

  1. (Autobiographer) Filled out your user profile completely including an avatar. Why? A community full of avatars and useful profile information makes it easier to see who you’re talking to.

  2. (Read Faq) Read the community guidelines (/faq) completely. Why? The community guidelines are everyone’s recipe for civilized discourse.

  3. (First Like) Cast a like. Why? Learning to give your fellow community members a hearty pat on the back – and avoiding meaningless “+1” and “me too” posts –

  4. (First Quote) Quoted a post. Why? Quoting is crucial for flat discussions, learning to select text in another post (or use the quote button in the toolbar) helps keep discussions on topic and readable.

  5. (First Link) Linked to another topic. Why? Links are the bread and butter of the web, and linking to other ongoing discussions is how we find them.

  6. (Reader) Read a long topic, every post, all the way to the end. Why? Endurance! And yes @sam we will check that you didn’t just mindlessly scroll as fast as you could to get to the end, either. Read Time Matters.

  7. (First Share) Shared a topic that got clicked on. Why? Sharing topics with the outside world (using the share button and the URL that has your username on it) is how we attract new blood to any community.

  8. (First Flag) Flagged a topic or post. Why? We put a trashcan on every street corner so the city can stay clean. Everyone has to pitch in.

  9. (Editor) Edited one of your posts. Why? We want people to be unafraid to edit their stuff to make corrections or improvements.

  10. Trust level promotion. Why? This is kind of a stealth way of getting education about what trust levels mean in here. You go up a level, you get directed to a page that explains your new “powers” in badge form.

I know, I know, you probably have a dozen badge ideas. But before you post,

  • We want a limited list of badges in V1 to keep it simple. So the only way your badge is getting on this list is if it’s way more awesome than one of the 10 that’s already here.

  • Before proposing anything, PLEASE consider first: what positive community behavior would your badge encourage? If you can’t explain that first, don’t do it.

Anything else?

I’m sure I’ve forgotten or neglected to cover a bunch of stuff. Feedback welcome. And remember, we’re trying to keep this simple in V1!


What badges, if any, should Discourse have?
Badges feedback
Any resources on badges implementation?
Can we have a point or reward system as a feature?
Youtrack Integration
What are Badges?
(Patrick Klug) #2

Sounds like a great start! I do think it would be good to discuss whether we should have different values for badges from v1.

Example: Imagine a contributor badge that is given to discourse members who contributed to the code in a substantial way. Obviously this badge is harder to get than the Cast a like badge.

The gold, silver and bronze approach for badges seems to work great on StackOverflow, maybe we should consider a similar approach.


(Patrick Klug) #3

Alternatively maybe just have two classes of badges. High valued (x100) and low valued(x1) and then show a single number on the avatar. This way it’s still easy to see if someone has one or more high valued badges.

I do like the gold, silver, bronze approach on SO but am not sure if a forum really requires three different classes.


(Kamal Patel) #4

Essential: Proposed Badges 1-3

Highly beneficial for engagement: Proposed Badges 6-8

Highlights Cool Discourse Features: Proposed Badges 4, 5, 7, 11

Only ones that I can see being replaced: 9, 10

Flagging and editing are really basic and crucial features, so it’ll be tough to unseat 9 and 10 as core badges. I don’t see “get first like on reply/post” or “get X number of likes or replies or whatever” on the current list, although there aren’t any I’d replace with this type of badge.

Also, is 10 (or 11) badges for core set in stone? Because 15 sounds pretttyyyy good too. 10-11 basic ones, a couple cool ones maybe highlighting more discourse features or ways to make forums more civil.


(Luke S) #5

Related to 4 & 5: Perhaps something for using the reply-to-post link, rather than just replying to the topic?

Name Suggestions:

  • 8: Promoter. Maybe build this one with several levels? 1, 10, 100 successful promotions?
  • 9: Neighborhood Watch or Boy Scout (Leave it cleaner than you found it) This one feels like it should only award once, sort of a “you’ve discovered out community moderation tools.”
    • Perhaps there is a use case for tracking number of upheld flags? (Spam flags that contributed to an auto-spam-nuke, OT/Offensive/etc. that a mod agreed with and acted on) Though I really don’t know if it would be a good idea to encourage people to treat the flagging system as an opportunity to add notches to their belts.

Last thought: would it make sense for Names to be configurable by the forum admin? I would also expect that eventually, any glyphs or images provided by default could be easily overridden to match the look of your forum.


(Erlend Sogge Heggen) #6

Does that mean v1 would support badge levels? E.g. for one badge of “Cast a Like”, you only need to Like a single post, but for a second badge in that category you need to Like 5 more posts and so on (though I would not want to take it much further than that anyhow).

Looking back at the suggestions I made previously, my top contender would be:

Followup: Replied to someone (within 48h) who mentioned you or replied to one of your posts.
Rationale: Don’t blurb and bail! It’s no fun to have a conversation with drive-by posters who leave their conversation-partners hanging for weeks at a time.

And a new one would be:

Connecting the dots: Linked to another thread on the same forum.
Rationale: Links are the web. We can hardly have enough of them, and Discourse is clearly built to encourage their use. (Exhibit A - it’s even a full circle, so I think I just earned a lvl 2 of that badge! if such a thing does exist).

Once again like I’ve mentioned before, I’d prefer having a lot of the simple ones bundled together.

3, 4, 5, 9 and 10 could all be merged into one “Congrats, you’re using the forum essentials!” badge. I would also add “Used the search function to find a thread (that you replied to?)” to this bundle.


(Benjamin Kampmann) #7

That looks a little boring to me to be honest. And more like Karma-points than the number of badges.

What if - as was suggested - we’d use the “weight” or “level” and just show the top two or three badges there instead of a boring number? I bet this looks much fancier and with the badge title on the mouse over much more like a reward than this approach of only seeing the awarded badges after the click …

Only concern: this would require every badge to be present (visually) in at least two sizes: a small one here and a big, high-res for the overall page, but the fallback could always bee to have a down-scaled version of the high-res …

Aside from that, the proposal sounds very good.


(cpradio) #8

I’m not sure if this has been stated or not (so partially TL;DR, but I really dislike just seeing a number in a blue circle. That means absolutely nothing visually. Is it the number of likes? Their post count? Their Friends? What? If you put a Badge symbol or Trophy symbol next to it, it becomes identifiable without any effort.


(Dave McClure) #9

This may seem a little contrarian, but how important is for badges to be shown at all near a users avatar in a topic? It feels like it could quickly become clutter to me.

The badges are still incentives for the user, but do I really care if @lightyear got the “boy scout” badge? If I do really care, then I think its fine to make me go to his profile or click his avatar. I don’t want to see his boy scout badge every day. Its not like the “trust level” for each user is screaming at you right now, and I think that’s a good thing.

Perhaps it should be a site setting for whether badges are displayed all the time?

And if its important for some communities to display some indicator of badges near the avatar all the time, then I’d be more in favor or something like the mockup @codinghorror did. Instead of a blue circle as the background, perhaps the shape could be more ‘badge-like’.


(Kamal Patel) #10

Are tooltips an option? Like if you hover over whatever the overall badge representation is, then it gives you the breakdown of badges earned. Or anything to reduce clutter.

If points are on the horizon, those would look good in a blue circle.


(Jeff Atwood) #11

Expect a LONG beta period here, and certainly the whole badge system will default to off for a long, long time.

Always an option, and we always use them, but remember: tooltips do not exist on touch devices, which I expect to be extremely dominant in the future. You have to wean yourself off that crutch long term.


(Dave McClure) #12

I think clicking on it should just pop up the user card. Put more badge info in the user card and then let people visit the profile to see more as they do now.

Its been nice not to be accidentally “ejected” to the user profile since that feature was added.


(cpradio) #13

I find this to be a fair statement too. If we are going to use something nonsensical next to the avatar, I’d rather not have it at all and just visit the persons profile page. But if it were going to be obvious as to what it represents, then I could see it being “semi-useful”, granted I still wouldn’t mind if I had to go to their profile to view them (including the count).


(Kamal Patel) #14

True, although the tooltips I’ve used/seen have defaulted to click for touch devices, which isn’t too bad (although perhaps not a consistent user experience between touch and non-touch).

Just anything to reduce clutter really. The main reason I chose Discourse is lack of clutter, and then some doofus (maybe not a doofus, just a contrarian) said that it’s too cluttered yesterday. If badges are indicated near the user name, it might be nice to have it boxed off like this, to reduce the number of independent elements on the page:

http://askbot.org/en/question/2488/list-of-askbot-sites/


(Benjamin Kampmann) #15

I do agree - for system-based badges. Badges awarded by the system automatically to foster good conversation behaviour are probably not of high interest, BUT badges are about public visibility and achievement. While the “trust level” have much more internal system-permission functionality and don’t need to broadcasted, especially badges awarded by other people probably do. There is a reason why people were them on the top-left of their uniform usually – it also implies rank and authority.

I give an example from our community. We are a tech-learning community and one way we want to motivate on-going learning is by awarding badges for continuous achievement milestones. We have learning materials and after each one, we’d like them to submit a project based on what they’ve learned. That’d be reviewed by one of our coaches and if good enough, the person would be rewarded with the appropriate badge – for example the “Python Big Data Wrangler” for someone, who’s proven to know the how to handle big data efficiently in python.

Not only are they supposed to be proud of that, this also is a very interesting contextual information, when you read a post because it shows their “rank” even to a person that doesn’t know this information yet. The same goes for coaches, who’d have a badge signaling they are coaches for said topic. In an otherwise “anonymous”, distributed online community those are very quick and easy steps to give a post more or less meaning.

Therefore “hidden” badges do serve neither purpose of a) public visibility and recognition for ones achievements nor b) easy recognition of authority and "non-system-awarded badges very much useless.

And I do think there is a clutter-less way of displaying those that is a little more informative than just some number in a circle.

For previously mentioned reasons, yes, they definitely should be in the user card show after the click!


That said, maybe it does make sense to think of a clearer visual dividing the badges into automatic “system”-badge and custom community badges – at least the first might be replaced with themes.


Another thing, I’d like to add is about exactly that “public recognition”. I do like the notification system. But especially for very “honourable” badges it would be good offer an easy way to make it into a public post, too. Allowing others to congratulate and be motivated to achieve the same. Not part of v1 probably, but something to keep in mind for the future when designing the system.


(Dave McClure) #16

I don’t agree, but I think this is a difference of opinion that will just need to be reflected in system preferences. It’s a matter of what kind of culture you’re trying to build and that will be particular to the community.

I also think there may be differences between badges or trophies and titles or roles.

To me, a badge or a trophy is a gaudy thing, best left at home. When you win a badge or a trophy, it should make you and your mother very proud, but that doesn’t mean you should wear it on your sleeve to work or school every day.

A title or role on the other hand may imply both authority and responsibility. That’s the kind of thing that a select few should display transparently.

I think badges are useful feedback to the recipient so I’m not arguing for disabling the feature completely. And I don’t think they should be entirely hidden. It should be possible to see what badges any user has attained.

I would personally just like the ability to temper the overt display of them somewhat.


(Jeff Atwood) #17

Also, to both you and @lightyear: never underestimate the power of putting a simple number next to someone’s name. That’s basically the entire basis of Stack Overflow. It works.

http://www.codinghorror.com/blog/2012/11/for-a-bit-of-colored-ribbon.html

In fact, it works too well in a lot of ways.


(Patrick Klug) #18

Badges are not just for intrinsic motivation but should publicly identify valued members of the community. If you don’t think that badges should be visible near the avatar then I’d argue that you probably don’t need a badge system at all.

I like the idea of having a number near the avatar instead of specific badges. Specific badges just introduce more cognitive load as you have to learn and identify lots of different badges (presumably). A number is easy to grasp.

To go with the idea of having different values for badges it would be trivial to identify these users:

Joe=5 (fairly new user)
Bob=23 (established member)
Jane=242 (established member but must have some special badges to have such a high score)


(Erlend Sogge Heggen) #19

I think this would be less cluttered:

Some might complain that they want that corner of their avatar shown, but since certain themes will crop avatars to be circular, plus you can always click the avatar to see the full thing (and often-times you won’t even know what you’re looking at until you’ve done that), I don’t see that being much of an issue.

And badges don’t need their own button. They should be incorporated into the profile-popout anyhow.


(cpradio) #20

ooh, that looks good. But may start to get “too big” as the badge number hits double/triple digits (if possible).