Allow users to create their own group sub-forums? (like slack channels)

I’d like users to be able to create their own “mini-forums”. It’s similar to what this user had in mind, and comparable to users being able to create channels on slack.

Just like someone who runs their own forum, it should allow the creator to post messages to the top of the “sub-forum”, and choose which other users can participate in the sub-forum.

If users could create their own categories, that would get very close to this functionality. However, from the responses to the user request linked above, it looks like that would be very resource intensive and not recommended.

I understand this is not part of core discourse functionality. Is there a way I can do this or something close?

I am posting here and not in #marketplace, because I’m looking to figure out how to do this myself (including if this means coding on top of discourse).

And if it’s just not possible with discourse, I’m open to other suggestions (though obviously I’d prefer to stick with discourse!)

2 Likes

I give folks their own categories, they ask for it and explain how they’d like it set up, and then I do it. We have very few, high quality sub-forums used as blogs. :slight_smile:

3 Likes

Thanks. That could be a way to start, but the idea is that eventually many users would be able to set up their own categories, just like slack channels. There could end up being hundreds of categories and more as things scale.

1 Like

You should be able to do this using Groups. Look into groups where users can join and then communicate within the Group, which can be more flexible than categories.

5 Likes

Can groups function just like a slack channel can, but with discourse forum posts instead of slack chat posts?

I’ve read through this guide to groups, and also this discussion of groups v categories.

My best understanding is that groups are just a collection of people where, when one member of the group says something, the other members of the groups get notified? That would be different than what I am looking for.

It sounds like, from the posts I referenced, you could create a group and then give only that group permission to read and post to a certain category–but that just seems to be relying on categories anyway, and therefore the old problems of users not being able to create categories, you should only have a few categories, etc.

1 Like

Why not use tags? Tags can be created by anyone, and clicking on a tag effectively takes you to a sub-forum made up of that tag’s posts. It also allows you to set up notifications specific to that tag and create new topics with that tag already appended. You can see an example here with our “fantasy” tag.

Speaking from personal experience, when you have hundreds of categories, performance is affected. The discourse team has done a great job of mitigating since our community overwhelmed the system, but it is a concern to consider.

2 Likes

Thanks for the suggestion. That probably is indeed the closest to what I have in mind using current possibilities, assuming groups don’t work.

Do you think I can make it so that every post in that “sub forum” automatically has that tag, and the users can’t remove the tag? (I would want them to be able to remove and add other tags if they wanted.)

And then what about giving the sub-forum creator special control over the page linked to the tag, such as being able to pin posts to the top of the page, and maybe decide who can post that page?

1 Like

One further thought, can I use the API to get to what I have in mind in terms of a slack-like restricted channel?

EDIT: I’ll try to simplify my earlier post:

I see how I can use the tag functionality to create a page that seems mostly like a subforum.

I suppose I can add some html at the top of the page to give the subforum a name and description. And, I see how I could have an app in front of the forum, where a user hits a button that says: “Create Subforum”, that then through the API creates a tag, and sends the user to the page for that tag.

So far so good. BUT, even being willing to be creative with a separate app that communicates with the Discourse API, is it possible to get the following key requirements:

  1. When the subforum creator creates a topic in the subforum, that topic is pinned to the top of the subforum. And, most important:

  2. The ability to post to that subforum is restricted to people that the creator has approved.

I’m fine having the approval process happen on a separate app I code up (if discourse doesn’t provide for that), but is there a way with “pure discourse” or “discourse+app that plugs into api” to make it so that only a certain group of users can post to the subforum?

Remembering that there will be a different group of permitted users for each subforum. And it needs to function like a subforum with its own page (just like slack channels)–so just using private messages would be insufficient.

Perhaps this is what groups are for (linking groups to a specific and unique tag maybe?), but I haven’t been able to sort through them yet.

Otherwise, maybe there is a way to catch a post before it goes through, check it against an external database I put together, and only allow it to post to the subforum if it has the requisite permissions?

1 Like

Hi @Heather_Dudley, I am starting to understand how I can use tags to get close to this one. So thank you again for your reply.

I see that, from the tag summary page, if you create a new post, the tag is automatically there. Do you do anything to be sure the users don’t delete the tag from a new topic by accident?

In other words, I’m trying to figure out how to keep users from deleting the first tag that shows up when they create a topic from the tag page (while still allowing them to add/remove other tags).

Not really, no. Trying to do almost anything to “keep users from doing X” is an effort in futility. Educate them. Remove posts which they aren’t tagged and explain why.

At the category level you can require tags:

Thank you. That is helpful to hear.