Yes there is! With Roomy we’re creating something very forum-like ( while being built more on top of group chat ) and our “Roomy Spaces” are like “communities” that each have their own DID and PDS account that can be managed by the admins.
We have a work-in-progress service we call the arbiter that enforces a customizable “policy” over the community account. This policy lets you make completely custom rules for who is allowed to do what to the comunity’s ATProto repo.[1]
For example, you could say something like:
- There’s a record containing a list of admins: they can do anything
- There’s a record containing a list of “members”: they can create
com.bunbun.commentrecords that contain an at:// URI linking to a record in their own PDS, but do not allow them to create records linking to someone else’s PDS.
There’s a lot of different things you can do.
There’s also the opensocial group proposal that might be a good foundation: Opensocial.community proposal . Habitat is also thinking about things like this. I think that there will be more solutions popping up for this as the ATProto permissioned data proposal gets more mature.
The permissioned data proposal puts all private data in an “ATProto space”, and the owner of that space chooses which other accounts are allowed to read data from the space. You don’t need to directly grant any server access to the data, because if a user that has access to the space logs into an app, the app can use that user’s login to get a credential to access any data the user has access to.
But there are still other disadvantages to having comments owned 100% by users, for example, nothing stops the user from just deleting their comment without notice.
In Roomy we’ve considered having “moderator archive” services that listen for all the chats / comments posted and copies it to an archive that isn’t public so that users can’t try to hide abusive actions from the eyes of the moderators.
There’s trade-offs to that, of course, such as users not being able to delete sensitive data, and giving more power to moderators, so you have to weigh what’s important to you from a community / app perspective.
Anyway, overall there’s nothing wrong with the idea! I think the biggest challenge is that this “community / organization / forum” kind of pattern is still shaping up in ATProto as we work out the permissioned data proposal and the hopefully interoperable community standards that we need to build on top of it.
So it’s early days and that might mean a bit more churn and difficulty if you want to pursue the idea before things settle a bit more. It’s an exciting time for ATProto!
Happy to explain more later if you would like. It’s still very new and we’re iterating on it’s design as we use it for Roomy still. ↩︎