I’m hosting a site that has more than 1,000 categories. The community it is running for prefers using categories for semantic separation over, for example, tags.
This is working reasonably well, however, I encountered an issue recently (and I’m not sure when it started):
Browsing to a category view that has more than 20 sub-categories and uses “Boxes” to render the subcategory link elements, renders only (the first?) 20 categories in the list.
Clicking on the details dropdown select element does show the full list.
Yup, I think you’re bang on with your suspicion. Discourse was not designed to handle thousands of categories, for lots of reasons. We have been doing some work on category loading so that may change in the future.
Would you consider at least making CategoryList::CATEGORIES_PER_PAGE or CategoryList::MAX_UNOPTIMIZED_CATEGORIES configurable in some manner? even a hidden site setting would work for my case.
Writing plugin code to replace these is somewhat ugly as I can’t find any other way than monkey patching CategoryList which feel extremely fragile.
Entering the world of monkey patching is certainly not ideal.
That said I would be worried about fiddling with CategoryList::MAX_UNOPTIMIZED_CATEGORIES , we picked that cause stuff gets problematic at higher numbers. CategoryList::CATEGORIES_PER_PAGE though could probably comfortably push up to 100.