Questions About / Improvements To Anonymous Mode

It looks like our institution may be ditching Piazza, so I’m starting to get some queries about Discourse as a potential replacement for course forums.

One feature of Piazza that faculty consider important is anonymous posting. Accounts on Piazza can either post completely anonymously, or anonymous to other students but not to course staff. I’m wondering if something similar could be achieved using Discourse, possibly through a plugin.

I’m aware that Discourse has existing support for anonymous mode. However, there are a few drawbacks to the feature as it is currently implemented. First, it’s not that clear in the UI how to enter anonymous mode. I’ve heard from multiple students that claim that our forum doesn’t have it, which I think is because they can’t figure out how to turn it on. That’s probably fairly straightforward to fix. Ideally there would be a way to have a toggle so that an individual post could be anonymous, rather than having the user enter a separate mode.

The second more serious problem is that anonymous users seem to lose access granted to the named user. We use groups and category permissions heavily to control what students can see on the forum, which is particularly important when maintaining the same forum across multiple semesters. (Essentially each new batch of students is put into a semester-specific group which provides a simplified view of the forum where they can only see semester-specific categories and a few others that we allow continuous posting in.) So once a user enters anonymous mode, they lose access to the very topics that they would like to engage in anonymously.

The second problem seems harder to fix. Ideally Discourse would forward some permissions and group memberships to the anonymous user—although probably not all, since you probably want to avoid moderators accidentally taking certain actions while anonymous. But if there was an option to allow non-admin permissions and group membership to be forwarded to anonymous users, that would support our use case.

Overall better support for anonymity would be something that I think would help Discourse enter the university class forum space. It may seem surprising, but this is frequently one of the first questions other faculty have when I suggest that they try Discourse for their course.


This is excellent, detailed feedback, but to be perfectly honest with you, if anonymous participation is a critical path feature that you expect users to be taking advantage of all the time, I’m not sure Discourse is the right choice for that use case.

That said, your idea is a reasonable one:

How do you feel about this one @sam since I know you worked on anon a fair bit way back when.


I’m not sure. I’ve been using Discourse as a course forum for a long time, and I’ve never really felt that this is a huge barrier. However, there are some students that feel more comfortable when they can engage anonymously. So I’m not sure exactly what would happen here.

That’s fair, but would also be too bad, since I think that Discourse provides 95%+ of the needs of a typical course forum, and does it much (much) better than at least the alternatives that I am aware of. Just from a feature and fit and finish perspective, Discourse is already miles ahead of Piazza. Apparently CampusWire will be the next licensed solution offered by my university, but it’s another closed-source product that will probably be less effective and will definitely be less extensible than Discourse. (At least the fact that we have to pay for it makes me less nervous about what they are doing with the student data, which has been a big concern of mine regarding Piazza.)

I think that adding this feature might help snare at least a bit more of the campus market. The other difference that Piazza has is the collaborative answering, but that’s both not terribly well-implemented and something that you can argue is better served by Discourse’s discussion model. So that seems less important to duplicate.


The trouble with giving the fake anon user groups is that we will be stuck synchronising this over time, there is huge risk here

To be honest I think we should scrap the whole feature and replace it with an implementation similar to the anonymous moderator feature @tgxworld recently built, it is far more intuitive to use as well

@tgxworld did we have #plugin topic for the plugin?


Correct me if I’m wrong, but this seems connected to the current model where a user can enter anonymous mode and remain there over a long period of time—during which, perhaps, their group membership might change?

I think what would suffice is something along the lines of an anonymous action: for example, posting or replying to a topic. This would behave like entering anonymous mode, doing that thing, and then leaving, meaning that it should be sufficient to determine whether the action can be taken based on the user’s groups when the action takes place.

Anyway, I’m just spitballing. I’ll be excited to hear about the anonymous moderator feature you’ve mentioned and whether it could be extended to meet this use case.


Exactly, this is how the “anon moderator” feature works and why it is so much safer and so much more usable. Additionally, all “anon” posts can come from one account, meaning that anonymity is significantly more … anonymous.


Ah, interesting. For our use case we might actually not want that. Imagine a bunch of anonymous students are talking in a topic. We actually do want staff to be able to tell them apart :slight_smile:. And we also need their posts to be able to be traced back to an actual account, to address bad behavior. It’s probably also ideal for anonymous identities to be stable over time, similar to the current feature.


Again another thing covered by the anon moderator plugin. We still associate the post in the backend using other mechanisms with the actual user.

It is just that students will no longer be able to tell that “anon17” posted across 17 topics and is the same anon17. This does lead to an easier way for end users to figure out which anon number is which user.


Interesting. Does the identity stay stable within the topic, but not across? That would be nice.

It would also be nice for staff (or over some trust level) to have a way to see student identities regardless of whether they are hidden from other students, although I guess that gets tricky with @mentions and such.

1 Like

@sam : Is the anon-moderator plugin available to hosted versions? I’m using Discourse pretty much exactly as @Geoffrey_Challen describes: multiple classes use the forums, some categories are shared, but there is at least one category for each class that is only accessible for that class. At the moment, if students switch to anonymous mode, they lose access to their restricted category.

Anonymous mode is a really important feature for a classroom setting. Most students are happy to post with their identity (especially as I allow them to choose their visible ID), but there are always a few who feel less comfortable to do so.

I understand the issue around inherited permissions (the anonymous user could potentially have more permissions than the original user). In my setting, it’s not really a substantial threat, students are aware that I can always go back and identify exactly who they are if they don’t behave properly.


The Anonymous Moderators plugin is not available on either our Standard or Business plans. The plugins available for those plans are here: Plugin directory | Discourse - Civilized Discussion. It would be possible to have the Anonymous Moderators plugin installed on our Enterprise plan.


Thanks @simon, that’s a shame. Does that mean there is no way to have users posting anonymously in restricted categories on a Standard hosted Discourse?


I can’t think of any way of accomplishing that on our Standard plan. It could be possible on the Business plan by using the Data Explorer plugin to find the regular user accounts that are associated with the anonymous accounts and then adding anonymous users to the appropriate groups based on the regular user’s groups. This doesn’t seem like a great solution to me, so I’m not suggesting that you try that approach.


@morisset: I’m not sure that this plugin solves your problem anyway. Assuming I have the right plugin, the description states:

Allows moderators to have a second account for performing actions anonymously. Other staff members can see the real identity of the account.

So this additional capability is limited to moderators. I think that @sam’s reference to this plugin was a suggestion that Discourse’s core anonymization capabilities move in this direction. Or, perhaps, a second plugin could be created that extends this functionality to non-moderators. (Obviously you don’t want to set all of your students as moderators! I don’t even set all my staff as moderators—although I made this mistake a few times when I started using Discourse. It’s a pretty powerful set of capabilities, and you really only want to provide it to people that you trust.)