Rearranging project categories into sub-categories

We’ve now had running happily for some months, and I’m going to do another round of adjusting the site structure, particularly around categories.

A few projects have asked whether they can use the site to discuss their pieces in particular, and some maintainers want to have semi-private areas so that they can shift their discussions onto discuss but still maintain a focussed small group dynamic for day-to-day discussions.

Therefore, a good structure for this category-wise would be:

  • A Projects category, with sub-categories for individual major communities. This would mean renaming the Core/Async and Ocsigen categories into subcategories of projects, and adding others such as Mirage in the future.
  • A Maintainers category which is configured by default to be semi-private, and invitational to maintainers of the particular projects involved. These are not designed to grow into enormous discussions, but to cover the need for private discussions while still using an open-source platform.
  • Review the use of tags in the main site, and update the pinned introduction post to link newcomers to useful indexes.

I hope that with this new structure, projects can have a good place to redirect longer-running GitHub issues into the more freeflowing discussion format encouraged here. It will also help us shift currently rather spread out maintainer discussions into here, to make it easier for new contributors to get up to speed on what their fellow maintainers have discussed in the past. This is currently rather difficult with email/Slack/IRC (although @whitequark’s IRC logs are extremely handy in this regard).

As a reminder, the difference between categories and tags on Discourse seems primarily around ease of subscription to new topics. Categories can be individually subscribed to, so a project maintainer could ignore the rest of the site while only receiving messages relevant to them.


Well, the other difference is that categories are exclusive. Which means that a topic can’t be in both the “Mirage” and the “Learning” categories, which doesn’t really make any sense.

Similarly, announcements are currently optionally-tagged, which is a bit unfortunate. It would be better served with a category … but then we get the same issue.

Unfortunately, I don’t have a concrete solution, and I do think your new organization looks better than the current one.

1 Like

That’s true. Perhaps we need to be a little clearer on when someone would post in a project-specific category vs in the general Learning section with tags.

One distinguishing feature is whether there are project-specific tools in play (e.g. the mirage front end CLI or eliomc for Ocsigen). But overall, as long as newcomers are comfortable posting in either category and getting responses, I think our goals are met :slight_smile:

I am planning to do a sweep of uncategorised historical topics and edit them into the appropriate area. Other maintainers: please also feel free to do the same. And if you do not currently have maintainer status and would like to, please also drop myself or @gasche a line and we will bump your trust level.

Having looked at the other categories, I think that Build is also misplaced at the toplevel. There are a number of questions that fit better into an Ecosystem category, with tags distinguishing the specific tools in question.

This leaves us with the following broad categories:

  • Community: jobs, announcements, events
  • Learning: questions about the OCaml language
  • Ecosystem: the library and tools, such as opam or javascript
  • Maintainers: a semi-private area for maintainers of specific areas

I’ll move the existing toplevel categories into sub-categories of the above 4, after creating Ecosystem. We may choose to deprecate some of the project-specific categories afterwards, if tags are sufficient under Ecosystem.

1 Like

Some positive feedback: I think having a Learning category that clearly applies to all skill and knowledge levels is a really good move.

Thanks for doing this reorganization!


Update: I’ve gone through the entire forum today and:

  • added a category for Ecosystem
  • removed the old categories for Build, Core/Async, Lwt, Ocsigen and moved posts tagged with their appropriate project to either the Learning or Ecosystem category.
  • activated the “mark reply as solved” feature in the Learning and Ecosystem categories, so you can quickly let a reader jump to a relevant reply.
  • rationalised quite a few tags by editing posts. It might be a good idea for us to review the tag list and remove some of the unary ones to more a more focussed list. However, some popular ones are clearly standing out already.

Next steps:

  • Adding the semi-private Maintainers category.
  • Figuring out how to make Wiki posts by asking on the Discourse support channel, so that we can have an index post that is editable by more forum users than the poster.
  • I’ll create a globally pinned topic as soon as that’s done with signposts for new users to the 4 primary categories that now remain.

I hope this is a much simpler experience overall for use of the forum. Thanks very much for all the feedback so far!


One category it feels like we’re missing: general questions and discussions of the language itself (rather than the ecosystem). Some of those aren’t really “Learning” as such though traditionally it seems like we’ve put them under “Learning” up to now.

1 Like

I think @yomimono’s note above summarises my thoughts on this too:

If a feature has been incorporated into the OCaml compiler, then a discussion about it fits well into the Learning section (even if it’s some advanced edge of the language – I certainly learn a lot from those discussions!). If it is something coming in the future, then the more wide-ranging Ecosystem category is more appropriate, since often there are workarounds or external libraries/tools that could also solve the same problem without a compiler extension. Highly detail-oriented discussions about specific proposed language features should go on OCaml Mantis instead of here.


Originally, it was thought that there should be beginner’s question category to replace the old Yahoo group iirc. This is now part of a broader Learner category. Is there a need for beginner/advanced distinction, despite its inherent vagueness?

Btw to me “Learner” suggests questions that are not at all advanced or overly subtle. Is there a better name for the general Learner category? “Language and coding questions”?

“Learning” (the distinction matters) is something it’s possible to do no matter how much knowledge you have already. Increasing the amount of knowledge that exists, IMO, counts as learning.

I’ve been working in OCaml, sometimes professionally, for about 3.5 years now. I have many questions which others in this community could easily answer; I can probably answer many questions for other people. I probably can’t answer some “beginner” questions, and I suspect I could probably pose questions that someone would suggest ought to go in a “beginner” category if one existed, and learn from the answers. I think we encourage more knowledge sharing by not having such artificial distinctions.


I agree. However, if you do spot evidence that the original purpose of the category (to have a place for newcomers to the language) has now been subverted, please let me know @mars0i. I’ll keep an eye on the posting rates to make sure it doesn’t drop suddenly after the rearrangements :slight_smile:

I agree. We are all learners. Nevertheless, point is that that “Learner” can easily be interpreted as a term for beginners. I’m not against having a category for language and coding questions at all levels, but (other things being equal) it could be better to have a name for it that doesn’t require an explanation to avoid misinterpretation. i.e. ideally, it’s better if you can correctly guess the scope of the category without reading its description.

Thanks @asvm. I’m very worried that this will happen. I suppose that if there were many advanced questions and almost no beginner questions, then beginners might feel that their questions didn’t belong–maybe–but there’s been a mix of questions at various levels already, so the risk seems small.

The best way to avoid this is probably by being explicit in the pinned welcome message that all levels are ok. I’ll take a look at that this week, when integrating the FAQ posts in.