Another follow-up topic: Group management methods

This is a follow up discussion from our atmospheric groups meeting today.

Two of the largest pieces that have been identified as “what needs to be defined for atmospheric groups” are group discovery (which we are chatting about the specifics of here) and group management methods.

It seems like there is some alignment based on the discussion about doing our best to define the minimum amount of methods required to allow apps to interact with atmospheric groups while allowing for maximum creativity in the management of said groups, which is going to be a super fun engineering problem!

Some initial questions to get the conversation started:

  • Data vs XRPC methods for lexicons
  • To role or not to role ←Should there be an initial very basic set of roles defined to work with?

Some initial proposals:

Group Interaction: Showing and joining/leaving a group

  • listGroups: Paginated list of all groups (optionally provide member DID for all groups for a specific DID)
  • isGroupMember: Is this user a member of this group (optional role field)
  • joinGroup: Allow new members to join from any app, if applicable/allowed
  • leaveGroup: Allow existing members to leave from any app, if applicable/allowed
  • listGroupSpaces: What spaces (public and permissioned) exist under this group (data is retrieved as a protocol specification)
  • invite/revokeInvite: For invite-only spaces

Group Delegation: Doing a thing on behalf of a group

  • createGroupSpace: Create a new space on behalf of this group

For what it’s worth, I did a some requirements gathering last year (primarily with activists) about what’s needed for a Facebook group equivalent. It could be a good check to ensure that the methods (along with other constructs like labelers, and other lexicons like events) are rich enough to support these – or at least explicitly decide that no, some of these things are outside the design scope.

User view

  • Join / leave group

  • Post / reply / like / etc

  • See posts in home feed

  • See recent posts in group

  • Search posts in group

  • See group members

  • See and add events to group calendar

  • Invite people

  • Report posts to group mods

Moderator view

  • Set group guidelines / code of conduct

  • Request info on application form

  • Invite / approve / reject members

  • Hide / delete posts, remove members

  • Mute members for a time period

  • Pin posts

  • Screen posts / replies before publishing

  • Lock threads

  • Labelers and/or domain block / allowlist

  • Send announcement to members

2 Likes