Discourse Reactions - Beyond Likes

Bored of likes in discourse? Here’s something you will definitely love.


Discourse-reactions is a plugin that allows user to add their reactions to the post. This plugin can engage more audiences to the post. Users who may not have previously wanted to Like your content are now able to send more specific signals about how your content makes them feel. Users who may not have wanted to use their phones to post can now use them to “react” much easier.

Reactions can be different on each website as we have an amazing feature where site admin can set their list of emojis which can be used as reactions.

To customize the reactions use the site setting discourse_reactions_enabled_reactions and define emojis you want as reactions separated by | eg: open_mouth|cry|angry

This plugin will work as an add-on to the likes feature, anytime you want to remove the plugin, all likes will be preserved.

:link: Repository Link


:link: How to install a plugin


You can configure these Site Settings:

  • discourse_reactions_enabled To enable the plugin
  • discourse_reactions_enabled_reactions To define the list of enabled reactions, any emoji is allowed here. default: laughing|open_mouth|cry|angry|thumbsup|thumbsdown
  • discourse_reactions_like_icon To replace the like icon.
  • discourse_reactions_reaction_for_like To define the name of like reaction.

Creating a reaction

The reaction can be created either by clicking the like icon OR by hovering and selecting reaction from the reaction picker.


  • In Mobile to open the reaction-panel long press on like icon.

Screenshot 2021-03-15 at 10.14.04 AM

See who reacted?

On the left side of the post, there will be a list of reactions, by clicking on it, there will be a modal displayed with the list of reactions.

If there are only likes in the post, a list of reactions will not be available but there will be a like-count besides the like button. clicking on it will display the same modal.

Don’t want to see this whole modal? Just hover on the reaction-emoji in the list to see the recently reacted users (Available Only on the desktop site).

See Your reactions?

In the user page activity, there is an extra Reactions tab where you will find all reactions you made.

See who reacted to your post?

In the user page notifications, there is an extra Reactions tab where you will find all reactions made to your posts.


First Reaction Badge is granted to the user when they make their first reaction to a post.



Special Thanks

Special thanks to @joffreyjaffeux for being such a nice mentor and for being super helpful in everything :open_hands: and @team for helping us to make the plugin works perfect by finding bugs as much as possible.


is it possible for me to upload my own emoji?


In settings - Customise - Emoji.

I guess they would work here.


Yes, as stated by @Jonathan5 you can upload your custom emoji in admin → customize → emojis and access it in the plugin


Looks great, but from the description, it’s unclear whether it has one important feature (one that is supported by Retort so far): Setting reaction names

EDIT: Nevermind, of course this is supported. It has to be, it’s the same thing as Retort. If we upload our own image (whether or not it is the same thing as an existing emoji), of course we have to give it a name. So this should work just the same.

FWIW, example for perspective: Using the extra reaction options - Forum meta etc - Snowdrift.coop Community Discussions

We chose reactions such as “changed_my_mind” and “sympathies” which we find far better than anything the emojis express on their own. We know it’s just a <title> tag that only shows on hover, but this really reinforces what we’re otherwise saying for our community about what each image means for us.


Just a note that the site setting discourse reactions like icon seems to be asking for a FontAwesome icon to display as the “button” that people will hover over to see their reaction options. The next site setting discourse reactions reaction for like is then the emoji name, I think. These may be different even for the same icon, e.g., “thumbs-up” (FA icon) vs. “thumbsup” (emoji).

A couple clarification questions regarding removal:

  1. If the plugin is removed, do other reactions convert to likes? Is the post-removal count the likes issued before this plugin, or does it also include any “like” reactions while installed?
  2. If the plugin is later re-installed, would reactions issued during the first time be re-instated?

Thanks for the good plugin! I would like to take part in the translation. Is that possible somehow?


I’m running into an interesting situation: If I liked a post prior to installing this plugin, I can’t unlike it. Similarly, I can’t change my reaction…is this intentional?

It seems odd that likes would be immutable…


Did you change the site setting post undo action window mins? by default you can’t unlike something after 10 minutes has passed. The same behavior is kept for reactions.

They do not. The expectation is that not all reactions will be equivilant to a like (:-1: for example). This is also why discourse reactions reaction for like exists, because we’re only mapping one reaction type to a like.


OK cool, I think I’ve got it. So, say I map my “old :heart: likes” (and there were 10,000 of them) to :+1: with this new plugin. Some time passes, and 1,000 more :+1:'s are given and 500 :-1: are given.

If I uninstall the plugin, I go back to having 11,000 :heart:'s total (10,000 + 1,000) on my site, right?


Likes are only mapped with the main-reaction, say you have set your setting discourse reactions reaction for like to heart then only heart reactions will be counted in likes.

Yes, after re-installation all reactions will be preserved.


Sure, you can go through this post Contribute a translation to Discourse this might help you.


So follow-up: changing the post undo action window mins fixed it for me. I set it to one-year – since it’s feasible that users should be able to edit – I’d personally like it to be possible to be undone forever.


Checking: does this work as Retort does if the set of exposed reactions is changed? The way it works with Retort, old reactions are retained even when they are no longer offered as an option.

1 Like

Yes, works the same way.


Retort has a nice feature, which is the ability to select several reactions (up to ALL of them)
Reactions seems limited to only one, in any case ? This would be great, IMHO.


Yes, this is actually a requirement for our use. Strong +1 here. It’s really meaningful to be able to “like” something and also express other reactions. A zero-sum either-or pick-only-one approach is comparatively impoverished.

For perspective, though Facebook and some others do this one-reaction limit, GitHub and others support multiple reactions. Multiple is just better in every way.


Multiple reactions is sadly not on our roadmap, it is a completely different UI with very different constraints


There may be something interesting (not sure, someone would need to confirm): The “hover” on the like button seems to only work with a “physical” pointer!? When accessing a remote desktop (with VNC), it seems the hover doesn’t work when the pointer is on the like button (at least on my end). I tried several browsers. Something with the way you detect the pointer position?

Too bad for the “several” reactions.
I participated a little on a xenforo (I believe) forum where there were some “agree” - “disagree” and “thank” buttons. I found this idea great, as it is my belief people will often want to only express these things, and clicking a button would be enough. No need for a post, so the buttons are better for everyone (less noise). I wanted to use the “reactions” to achieve this. I find it nice to be able to potentially agree/disagree + thank + like at the same time (+maybe even something else. This was possible on the forum I participated to, and it is indeed great IMHO).


Will this plug in be coming to hosted sites? I would very much like to see it!