Workspace groups

:information_source: Summary Prototype plugin for using one Discourse server as a home for multiple teams (slack- or mattermost-like).
:hammer_and_wrench: Repository Link GitHub - akhmerov/discourse-workspace-groups · GitHub
:open_book: Install Guide How to install plugins in Discourse

This is a prototype plugin, mostly AI-generated, use it at your own risk. Any feedback welcome!

Features

I built this because I want to host a single Discourse instance for several research groups, while making each top-level category feel more like a team space. The plugin turns top-level categories into workspaces and subcategories into channels. Each channel keeps its normal Discourse topics and also gets a paired chat channel.

The plugin also adds a team overview page, team-focused sidebar navigation, public and private channels, join and leave flows, guest access to individual channels, and archive or unarchive support for channels that should become read-only.

Here is how it looks:

Configuration

Install the plugin, rebuild Discourse, and enable discourse_workspace_groups_enabled in the admin settings. If you want the paired chat behavior, also enable Discourse Chat and configure it so category chat channels can be created and used.

To use the plugin, create a top-level category for a research group and convert it into a workspace. Its subcategories then become channels. The team overview page is the main place to create and manage channels.

If you want ordinary team members to create channels, enable discourse_workspace_groups_members_can_create_channels. If some top-level categories should never become workspaces, add their IDs to discourse_workspace_groups_excluded_top_level_category_ids.

Settings

Name Description
discourse_workspace_groups_enabled Enables the plugin and its workspace or channel behavior.
discourse_workspace_groups_members_can_create_channels Allows non-admin members of a workspace to create channels.
discourse_workspace_groups_excluded_top_level_category_ids A list of top-level category IDs that should never be treated as workspace candidates.
4 Likes

I really like what you’re doing here. I can certainly see something like this being appropriate for a larger org that wants to provide groups their own space to organize their communication amongst themselves.

Are you using this in the wild yet?

(I do see your caveat about it being a prototype)

Curious to hear what your real world experience is with it.

3 Likes

Thanks!

It’s fresh out of the oven, so I’m posting it also as an RFC. I’ll still need to develop a migration of a few gigabytes/a decade worth of Mattermost database into it before I can use this in production.

2 Likes