Groups: What do people want from them?

this is probably the most requested feature ever, and it should probably be looked at properly

the first step in this is figuring out what people actually mean by the word “groups” and what functionality this should incorporate

the scope of this issue covers the high-level design only, and not the implementation details which will be covered later

what do people want/need from a group?

what do you expect one to do? how do you expect it to operate?

leave the technical details out of it, just from a purely functional point of view, what would you want a group to do?

Ref: #20 - [investigation] take a look at the viability of groups - akkoma - Akkoma Development

2 Likes

imo when people mean groups they usually mean something in shape of groups on facebook which is a totally separate timeline with its own moderation, but posts still show up on your tl if you are a member of said group. there also are visibility settings of the whole group, but from what I understand they got pretty convoluted now, anyways, few years ago you had:

  • public/open where anyone could just join, and all posts were visible without joining,
  • closed where info about group was visible without joining but you have to join to see posts, and also you have to be accepted
  • secret where you have to get invited by the group admin and you can’t really find the group otherwise

that’s all from me I think?

3 Likes

When I think of groups, I think primarily of Facebook groups, which is a feature that’s honestly still keeping people on that site because nothing else has it.

A Facebook group is a separate timeline that others can contribute to. They can start new threads there, or share posts from others to the timeline (if those posts are public) in order to continue discussion. This sometimes shows up on your main feed (User posted to Group) if you’re in the group. The group timeline can be set totally private so only members can see, or it can be left public so people can see if it’s for them.

So you have this group timeline, visible when you go to the group. The group primarily shows the threads and a preview of some of the replies in the thread, it does not just jumble replies and new posts together in one confused timeline the way pleroma does.

The group admin can pin posts to the group for group announcements, and the group admin (whoever created the group + who they set as admin) can ban people from the group to keep out harassment.

These groups can also set events for the group, add files for the group, etc but I dont think these are necessary for fedi per se.

And you have a menu that lets you see all groups you’re in, and you can create a new group.

The group also has a banner unique to it which helps add personality. And you can sort group threads by new posts or posts with recent activity.

Attaching some pics to show the general layout


2 Likes

I’m generally unsure whether Akkoma or Fedi in its implementation today lends itself to groups. Maybe this should be left to Matrix et. al.

Maybe a look at how makeshift groups are used can also help, e.g. https://piggo.space/users/fedigroups

I have not thought this through, but it might necessitate a separate Groups timeline that contains groups interactions. Given that some groups might produce hellthread-level amounts of messages, they should be separated from the home timeline. So basically like email separating To: from CC:

Also within group interactions, it should be possible to address specific members individually, so you can refer to their posts. Independent of the implementation, a better filter for notifications will be required (group mention vs. direct mention vs. direct mention within group).

Groups should have a prefix or similar in the address to make it immediately identifiable as such.

1 Like

My understanding of Groups is similar to Jeder and eris.

A separate timeline that could be public or private (invite only or request + allow) and might be configurable on the user end to show up in the main feed or be separated/added to the sidebar.
E.g. we currently have a dropdown for different timelines (Home, Public, Known Net, …) which could be expanded on with a new Groups dropdown and possibly a notification bell attached per group if there is new posts in said group.

2 Likes

Quoting myself from the linked issue:

The way I see it, there’s basically two kinds of “groups” that people are talking about:

  1. GNU Social-style groups: Basically like a mailing list where one can subscribe to that group, and everyone subbed to that group receives messages that are sent to that group.
  2. Circles like those in Google+. People in such groups can send private messages to that group and everyone gets those messages, almost like a group chat.

My idea would be to have both the broadcast functionality of (1) and group messaging stuff of (2). Group owners (and maybe moderators depending on how granular we want roles to be) can do things like control who can join the group and be able to kick bad members out, and also whether it’s public or not.

I personally don’t use Facebook, but how FB groups are described here sounds pretty close to how I imagine an ideal group implementation would be like.

1 Like

Use case: meetup planning.

You need to discuss meetup details with, say, 5–50 people. Ideally in private, so that only invited people can see the details.

You could do this using direct messages, but then every time you add a post, you would have to mention everyone who is invited. Not only does that take up space in the message body, but as new people are invited and existing people leave, the asynchronous and threaded nature of the conversation can lead to sub-threads with different recipients.

So it would be nice to be able to send a private group message without having to mention each recipient explicitly in every message, and with a way to add people to the group and remove them from the group.

(This is essentially the same idea as the Circles mentioned in norm’s comment.)

Coming from Misskey & derivatives, these two kinds of groups sound similar: Misskey has “Groups” and “Channels”, however both of them not currently federated. That’s why I’ve personally never had any use for them on my single user instance.

Groups are chat rooms, they can only be used in Misskey Chats *1. I’ve thought, similar to @ultem, that maybe it would be too much reinventing the wheel to implement something like this, but yeah, Misskey already kinda has it.

Channels are more towards mailing lists: You can create posts within them and others can view them. You can follow a channel, which as far as I understand will make the posts show up on your timeline(s). Membership and posts are public and it is not possible to change the visibility of the channel or its posts.


*1 Misskey Chats are essentially direct messages with an extra attribute that only Misskey cares about. Thus they could break somewhat easily if you are chatting with someone else that is not on Misskey because Misskey Chats are unable of having “side threads”. There is an open issue in the Misskey repo to convert chats to Pleroma behaviour of using a custom object type because of this, but since I left I don’t think that would get implemented there, but maybe in FoundKey.

1 Like

Friendica has a working implementation of groups, which can be moderated by the group owner: Friendica Community Forum | Help: Groups and Privacy
Since friendica is said to be similar to facebook this might be worthy to look at. Compatibility to these existing groups in the fediverse would be nice.

Worth noting there’s a draft fediverse enhancement proposal regarding groups: fep/fep-1b12.md at main - fep - Codeberg.org

After giving it a try setting up and testing out a little bit, for me what would be a HUGE start and covers most of the use-cases I can think of is already done in Mobilizon, another fediverse platform. It doesn’t try to do anything other than groups and Events and I think that focus really helped me see what sorts of things I think would be best for adding any kind of group functionality to Akkoma.

I think most of its paradigms could be incorporated into Akkoma more-or-less, and it really showed me what I think would make for a great implementation of Groups.

I hope I’ve found my fediverse server! It’s looking good so far.

Groups are so important. I’m sure I’m going to say what others have already said, but I figure my speaking too still adds weight to the vision.

What I want as a user is to be able to create an akkoma group for my real life group. Just like we meet at someone’s house, we meet in this group. It’s really how I think about groups. Real life groups are public, private, or secret. Ideally this group works over federation, but if akkoma instances only, or if my instance only, I’d get a lot of use from it just the same. (I’m not clear what the broad scope of a group can technically be. Could activitypub do this?).

So as a user, I want to create a group I administer and appoint moderators. Admin can make it public (where posts are visible to unjoined people), private (where the public can see the name of the group and it’s description, but not it’s posts), or secret (where the groups existence isn’t visible without invitation) . Visible groups can have a request to join and require approval. A public group could have an option for automatic approval.

As a user, I want to see a list of public and private groups available on my local instance. (it’s hard to imagine beyond locally for this).

As a user, I don’t want individual posts from a group mixed in with my local or fediverse timelines. Perhaps timelines for local and fediverse could have an item indicating a new post from a group, but I don’t see the post itself. When I click it, I am taken to the page for that group. I always want to understand when I’m about to post to a group. What happens in group club …

As a user, I want to have a visual cue as to who else is in the group I’m viewing. Newest members since I last viewed the group are listed. A full list is a click or a hover away. I’d want to be able to search/list/sort members for a group, etc.

As a user, I’d absolutely want to know if someone I’ve blocked is in a group or joins a group I’m in. Perhaps we’re both in the same group, but their posts are not viewable unless I take an action.

A group moderator should have all the same power as the admin, with the exception of demoting or removing the admin from a group. Should the admin of a group go missing, the group can carry on without them.

Beyond the obvious moderation powers, Group moderators should be able to freeze the group (prevent new posts from normal users), or even make the groups posts invisible. Sometimes bad things happen, and moderators need a quick power to deal with it.

As a user, I think I’d like to auto join people to a group. The other person could still get an approve/refuse button or similar. I’m really thinking about something I do on my iPhone frankly. Messaging multiple people essentially creates a group chat right then. I see it as a group chat in in my list of chats. The other people responding to it are also responding to everyone in the group. I’m curious what people think about this one. A person should be able to refuse a group chat, but quick creation and posting of something important is something I’d really want as a user.

I hope the above thoughts are welcome even if not agreeable. And thank you for akkoma! I like what I see here.

1 Like

Good overall discussion on groups in general. However, what I would like as a more immediate ”fix” would be to be able to add groups from for example Friendica or Lemmy, where the groups already exist. Currently, in Akkoma, I can find the groups if I search (for example @fediverse@lemmy.ml). However when I press the ”Add Contact” button it ends up in an eternal ”Request sent” state. The same is true for Friendica groups (for example @fediversenews@venera.social).

The thing is, there is no request procedure for those groups. There isn’t anyone in the receiving end to ”approve” anything. I am guessing this is due to how API’s identifying/authenticating (or not) or similar.

This is a thing for Akkoma specifically (haven’t tested Pleroma I have to admit), it works in Friendica and Mastodon, straight away. On Calckey it works when adding Friendica groups, not with Lemmy groups (so far, haven’t tested extensively).

But yeah, a quick win would be to be able to add existing Fediverse groups already out there.

2 Likes

Since this thread came back to my attention, I wanted to add that for Mobilizon, it’s already running on Elixir and psql with the federation code almost entirely from Pleroma. The configuration cheat-sheet is basically a modified version of the Pleroma/Akkoma configuration cheat-sheet. Under-the-hood, Mobilizon already, I believe, is running on the same packages that Akkoma is, more-or-less, and I would guess the hardest part would be how to integrate the functionality into the front-end.

Just throwing it out there. I also know about the Mastodon proposal and how that discussion is going so it will be interesting to see if that gets added to the mainline.

I need to correct myself here. It was in a ”Request sent” state for what seemed a very long time, but today when I check my timeline I appear to be following that particular group, and I get the posts to that group as well. It somehow fixed itself…?

The ”Request sent” state is still true on the Lemmy groups I’ve tried to add though.

The “request sent” state is caused by Lemmy not supporting Secure Mode/Authorized Fetch. Lemmy support has fixed on dev and should be working in the next release.

1 Like