The way I’d go about this is to have a “waiting room” that anyone can join and then put the real community in group-restricted categories. Here’s how it might work:
- Anyone can join Discourse without restriction.
- Create one category that anyone can see. It might be read-only or unrestricted depending on what makes sense for your community.
- Create a closed group that can only be joined when a group owner approves.
- Decide who gets to be a group owner and make them owners of the group. This can be moderators, staff or anyone you like.
- Create new categories that are stricted to the closed group. This is where the real community participates.
One advantage of an open waiting room is that new people can ask about the community before they really join. But I think it would also work to have the waiting room static with a single topic explaining the process.