Feature: endorse button to add single-click endorsements

As has been noted elsewhere and here, a number of instructors are now using Discourse as their primary in-class discussion forum. So have I, and with good success so far. Thank you for that.

One feature I’m missing is a button to endorse replies. There is the Heart-shaped “Like” button, but that’s not specific enough. What I’d like is a button “endorse,” available only to staff, and then the post I’m endorsing should show: “the response was endorsed by …” and list the names of the staff members endorsing it. This way, if another student or a TA answers a post, I have a single-click option to express (or withhold) my approval.

Current alternatives I know of include the “Like” button - but it’s difficult to see that I liked a post, and it’s not specific enough. Also, I know that there is a “staff notice” - which I’ve used before, but it requires me to type in what the staff notice is. Maybe there’s a plugin to add canned staff notices?


Have you considered the solved plugin? That’s what we use for this purpose, although what you’re proposing sounds more flexible…


“Solved” sounds a bit as though it would cut off discussion, wouldn’t it? Also, it seems that the topic owner could choose a reply that they think solves their question, rather than me as instructor endorsing something. Plus, there’s the question of what happens if the OP doesn’t choose solve - do we continue to follow up?

This actually reminds me of Piazza’s “resolved” feature (which I would also want to see replicated in Discourse). In Piazza, when I answer a student question, I set the topic to “resolved” when I think I answered the question. If the student thinks otherwise, they reset it to “unresolved” - and I can easily filter by “unresolved” threads to find where I need to follow up.

With the “solved” plugin, I take it, I could mark it as solved and if the OP disagrees, they can reset it back to the “unsolved” state?

1 Like

I haven’t found this to be the case. We regularly see conversations continue past the point where the topic is marked as solved.

So staff can also choose a reply as a solution. TBH, I don’t know what happens if the OP and staff disagree. I have unmarked posts in the past as solutions and moved the notation to another reply. But I don’t know if staff “win” here if there is disagreement? That said, part of why we don’t know is that it has never become an issue :slight_smile:. On our forum it’s usually staff marking replies as solutions, rather than the OP.

If this concerns you, I bet you could fork the plugin and add a setting to disable the OP’s ability to mark a post as solved, meaning that only staff would be able to. (There are a few settings available but I don’t see this one yet.) But at least in our case this hasn’t proven to be a problem.

At least for me the real benefit of solved is that it shows in the UI when I’m browsing topics and so it’s easy to see what is still unresolved. Also it nicely displays the solution response at the top of the topic, making it easier to confirm that the solution seems reasonable.

FWIW the “unresolved followup” feature of Piazza was one of the things I hated about it decades ago when I was still using it. IMO it really shuts down conversation, since even just an innocuous additional comment by default gets marked as unresolved (and angry red) unless I take another action, which students don’t always do.

Are you already using Discourse or just getting started? I’ve been using Discourse for my courses for a long time and I’d be happy to help you get started.


I’ve been using it since January, the only thing I had to fix so far was their lack of support for implicit TLS to get past the setup stage with my departmental mail server. But to be honest I will want to stay away from adding functionality if I can.

I’ve added the Solved plugin and am now looking for a time to activate it (unfortunately, there is this 5min downtime every time you rebuild the container to activate a new plugin…). I’m also a bit concerned about the support level of the plugins. It seems that they’re all under the github.com/discourse umbrella so hopefully they are part of some kind of holistic CI.

I think Piazza had an ok vibe and over the years they added features people wanted; it’s just that overall they offer too little value so now no one (or too few schools) will sign up and contract with them and pay them what they need for the (relatively small) value they provide, especially since many universities run bloated LMS (like Canvas, which I personally don’t use at all), and the Piazza fees would be on top. I have not heard much about how useful students found the matchmaking with companies Piazza built their previous business model on.

On the topic, have you found a solution for the “look for a partner” feature in Piazza?


I’ve never had a problem with an officially-supported plugin. We’ve had some issues with Babble, but that was never officially adopted. (And those issues seem like they are being resolved.)

For me Piazza’s pedagogical model was always suspect. I teach CS, and even if my pseudo-scientific discipline there is rarely one right answer and it’s usually more productive to have a conversation about the alternatives. Piazza doesn’t facilitate that. Also witness that it’s forum software that is essentially used nowhere outside of academia. (And widely abused inside academia to do things that it really shouldn’t…)

Nope! I didn’t know it had that feature. We use a fair number of Discourse plugins, but overall it’s a forum, not something that is going to solve all of your classroom management challenges. For something like that I might just roll my own tool since it seems simple enough. Although you could always create a category for students to post matchmaking posts in.


I think what I did was make a badge that was awarded when I liked the thing assignment. I could then use those badges in a script that generated grades for the assignments.

Do you think it would be enough to use the like button for that (for some group or category owner) or does it need to be a different button?

Perhaps something like Retort - a reaction-style plugin for Discourse is close to what you want. I’m not sure if it’s possible to limit who can make retorts, but even if not, you should be able to hide the ability to respond with CSS.

So the “resolved” state is something that the original Poster and a Special Person (admin, group member, maybe someone who “owns” the category?) can toggle on and off? And, like “solved”, you’d tag one post as the “resolved” post and that would affect the topic’s Resolved state?

I think that Geoffrey is right that whether a topic has a “solved” post shuts down the conversation is a community norm (unless someone closes the topic).


Thanks for the pointer to the retort plugin. So this is a plugin that’s hosted outside the github.com/discourse domain which I take means it’s not “officially” supported (presumably because of the Discourse maintainer’s aversion to downvoting?). I peeked at it and it contains some code from 2015 that deals with the backend, so this means that Discourse’s plugin API appears to be relatively stable.

We’re actually also using Discord in class now as an unofficial means of communication and the reply/retort icons have proved very useful there for the purpose of endorsing (or disagreeing with) replies. The most common uses are: student gives a “thumbs up” for “I’ve read your answer, thank you” and I give a “thumbs up” meaning: “what this person said is correct” or I give a “concerned” for “this is not quite right.”

You mention “Closing a topic” (in Discourse) which is something I haven’t needed to use and probably couldn’t see a use for in the classroom setting. For all I care, this could be moved to a plugin.

The “unresolved” feature in Piazza also led to another dynamic: the forum would publish statistics such as “average time to resolution” and it would display “unresolved” topics prominently in the search, inducing instructors and/or students to supply answers and then mark the topic as resolved.

1 Like


It means either that or the plugin is woefully out of date. Fortunately, in this case, I think that your assessment is correct in this case! I don’t think that I’m using this anywhere right now, but I was fairly recently.

At least the latter of those is the case with marking topics as solved, like


I’m not sure about the former offhand, but worst case you could get it with the data explorer plugin.

1 Like