Always-Anonymous Categories Plugin

I had a request from a co-worker to find a way to offer “anonymous Q&A” to our division’s employees. At first blush, Discourse seemed like the wrong tool for the job: anonymous posting seemed anathema to the whole point of fostering open, friendly, but lively discussions. Discourse does have built-in support for anonymous posting, but it’s a global setting. What we needed was a way to restrict anonymous posting to a single category (or a select subset of them). Even better, make anonymous posting automatic, so that users don’t have to think about it (and can’t get it wrong).

Thus was born discourse-anonymous-categories.

This plugin lets you choose individual categories for “always-anonymous” behavior, where all posts and replies automatically use the anonymous pseudonym for the user instead of their actual identity. The user doesn’t have to opt-in, and more importantly, doesn’t need to remember to opt-out when they are done posting.

Here’s what that looks like:

  1. After the plugin is installed, turn on the global setting to enable “always-anonymous” categories:

  2. Then, pick a category (or create a new one) for which you want “always-anonymous” behavior, and turn on the “Force posts to be anonymous in this cateory” setting:

  3. Now, when anyone posts (note that current user is “E”):

  4. They will actually get anonymized:

  5. … like this (note that post is as “anonymous”/“A”):

This plays very nicely with recent versions of discourse-feature-voting, which can be used to anonymously vote on topics. (The votes themselves aren’t anonymous, but the identities of the voters are not currently surfaced through the UI, unlike “Likes”.)


and whether non-registered users to post messages in this category?

Is this plugin still working (it hasn’t been updated since two years)?


Somehow I’m having a hard time making it work on my local environment. I’m gonna do some digging and share back here.

Yes, it still works. I had to delete my tmp folder in order to make it work but I think this is a problem with my local dev installation only (not using docker).

1 Like

Sadly, the purpose for which this was created no longer exists, so I haven’t given the plugin any love for the last several years. If anyone wants to take over maintenance, I’d be happy to let them!


I have a use for this plugin. How do I get it ‘looked after again’? Non-tech person asking, I’m on Communiteq (formerly DiscourseHosting). @michaeld @RGJ

Do you have a budget for this? If so, posting in #marketplace is most likely the best approach :slight_smile:


Are you sure that the plugin is not working correctly anymore?

When I read the posts above it just says it needs a new maintainer but Daniel says “Yes, it still works”


Yes, I agree the post says it needs a new maintainer. I guess that’s what I’m wondering if someone would do. Is that something that comes with my Pro hosting package?

I am runing it on v2.0.0.beta10 +111 and looks like it is working.
I do not have some issues whit my instace


FYI - docker version 2.4 - adding the plug in generates 500 server error when posting to category flagged as anonymous.

@JaredReisinger moved this to #plugin:broken-plugin pending your investigation. I redid the way we do anon accounts in 2.4 so maybe it broke the plugin.


As discussed above, I and @michaeld would be happy to take over the maintenance for this plugin.


You wouldn’t have ETA for a fix, would you? :wink:

Probably somewhere in September…

1 Like

@sam is right, the new work on the anom users broke the plugin. I’m looking into to this now because I need for one of my company’s products.

The error I get in product is:

NoMethodError (undefined method `create_shadow' for AnonymousShadowCreator:Class) /var/www/discourse/plugins/discourse-anonymous-categories/plugin.rb:76:in `block (2 levels) in activate!'

Coming from this line:

Will try to fix it and post an update here soon.


This is my quick fix:

I think I could remove the user custom_fields parts too now that Discourse has better support for anonymous users, but I will keep this change simple for now.


@JaredReisinger are you still maintaining the plugin? If not perhaps @Daniel_Lopes can change to OP here to point to the branch so we can ship this out of #plugin:broken-plugin


I’m sorry, I know I am not a guru, I cannot make it work… Could you pls write few sentences of instructions? Thank you.