By now we’ve dealt with a couple different customers who for various reasons would like to have categories in the thousands. The main scalability problem with regards to categories is the /categories view, e.g. this one:
https://meta.discourse.org/categories
With more than a few hundred categories, this page becomes considerably slower.
To work around this, I’m proposing a new feature called “unlisted categories”:
-
An unlisted category would not appear in any of Discourse’s category menus, i.e.
-
“all categories” drop-down
-
/categories index
-
right-hand “hamburger”.
-
The category still shows up in topic lists and users can click on the category and see all topics within it.
-
Unless the unlisted category has also opted to “Unlist new topics by default”, topics posted to an unlisted category are treated as normal will still show up normally on the front page.
-
There should be a site setting to optionally hide the “New Topic” button when you’ve drilled down into a specific category which happens to be unlisted.
(or maybe it could be replaced with a “New topic” button that when clicked will explain why you can’t post directly via the forum for this particular category.
So the point is that an “unlisted category” won’t clutter up any menus, but other than that it works the same as other categories.
Example: WordPress plugin directory
As an example use case, let’s say we were building rebuilding the wordpress.org plugin directory with Discourse.
We’d want each plugin to have a dedicated category on the forum so that popular plugins could be discussed in multiple topics and the plugin author(s) could help moderate these discussions. With thousands of plugins, you don’t want to expose these categories in any sort of one-page list.
Furthermore, a formal plugin listing would be the primary landing page for a plugin, as opposed to the forum. So when a user arrives on such a page and wants to start a new topic regarding that plugin, we already know which category the user wants to post in, so that doesn’t even have to be a decision for the user. All we need to do is let the user post directly to the appropriate category via an API integration or even just a pre-filled topic URL.
Perhaps the biggest question now becomes: If our soft limit on listed categories is “no more than a few hundred, please and thank you”, what is the limit for unlisted categories? A few thousand? Tens of thousands? @eviltrout
p.s. In some cases it might be desirable to still make the category available via category search-only, as is in the New Topic category drop-down as well as the #somecategory
autocompletion. I’d leave this out of v1 though.