bluesky-social / social-app

The Bluesky Social application for Web, iOS, and Android
https://bsky.app
MIT License
8.2k stars 1.09k forks source link

Channels: The ability to sort Posts & Reposts into categories (multiple timelines under one account) for users to selectively follow #1078

Open HeyItsLollie opened 1 year ago

HeyItsLollie commented 1 year ago

I want to preface this (frankly, gargantuan) feature request by saying: I present this request not as an immediate need, but as a larger goal to work towards for the future, as it would require the development of several smaller features in order to achieve it. However, this does represent a larger set of issues currently being felt across Bluesky as a social platform, so I hope this submission prompts some discussions.


Is your feature request related to a problem? Please describe.

Currently, one of the biggest limitations on Bluesky is that users lack control over how posts are displayed and viewed. We lack the ability to tag and flag our posts in meaningful ways for other users, the ability to control what we see from the users we follow on our Home Feed, and the ability to control the privacy of our posts outright.

Adults are being adults online. That alone is great, and I love to see it. But as much as I want and enjoy this freedom to post online, there's still a lot of people whose nudes I'd prefer to control whether I see them in my Home feed or not, without also having to unfollow their accounts outright.

Manual flagging is on the roadmap (#1053), and this is a good first step! But it won't offer enough control, or any meaningful privacy.


Describe the solution you'd like

What I'd like to suggest is a feature that I've yet to see similar platforms implement: The ability to sort Posts & Reposts into categories, user-defined timelines managed under a single account.

(Platforms like Tumblr and Cohost allow users to create multiple "Blogs" or "Pages" respectively. Twitter/Mastodon users resort to secondary "alt" accounts to achieve this functionality.)

For brevity, I'm going to call these user-defined timelines "Channels".

The core ideas and goals behind "Channels" are:

I've created mock-ups to help communicate these ideas, attached below.


User Profile - "Posts" Timeline displaying posts from specific Channels

Users could configure their "Posts" timeline to only show posts from specific Channels. Channels wouldn't necessarily need to be private in order to be excluded from the Posts Timeline.

This configuration could determine the Channels that new followers see by default. To change this, followers would only need to investigate the Channels tab, or the +Follow Settings dropdown menu.

Specific Channels could also be pinned directly to the User's Profile, to highlight timelines that are most important to the User.

Bluesky - Posts


User Profile - "Channel" Tab

The list of available Channels, detailing the number of posts, reposts, latest activity, and a brief (optional) description.

This demonstrates a Locked Private Channel, requiring the User to approve requests before new followers can access that timeline. Channels would have defined privacy settings, so there's never any confusion as to whether a specific Channel's posts are public or not.

Bluesky - Channel List


User Profile - "Follow" Settings Dropdown Menu

It's important that Channel settings are easy to find, so these could also be made available via a dropdown next to the +Follow button.

Also seen here are stand-ins for "default" channels that everyone would have. Controls for whether you follow a User's everyday uncategorized posts, and the ability to hide a User's Reposts from the Home Feed — with options for whether you only hide Reposts of other users, Self-Reposts, or all Reposts outright.

Bluesky - Follow Per Channel


New Post - "Post to Channel" Selection Bar

Finally, one example of how Posts could be assigned to a Channel. The goal would be to streamline this option and make it as unobtrusive as possible, so reducing the Channel selection to a one-button option (as pictured) or two-button selection (eg: dropdown menu, or a "Change Selection" window) would be ideal.

Bluesky - Post to Channel

Other examples:


Describe alternatives you've considered

From what I've seen so far, users are already attempting to use Feeds to achieve this. While this does function to a degree:

The only other alternative is to create an alternate account. This allows for sorting posts and reposts across separate timelines by... literally having a new account for every new timeline, and micromanaging posts across multiple accounts. This is generally how this issue has been "solved" or worked around on similar platforms, and it works, but it clearly demonstrates that people have always needed a way to do this. This option is also currently restricted, as the ability to create new Bluesky accounts is locked to Invitation Codes.

Oldrego commented 1 year ago

Your idea of channels is interesting, but most likely out of scope. I actually think there's a better way of implementing (most) of what you're looking for here.

Self-labelling is going to (eventually) be implemented for moderation purposes, but there is the option to have user-created labels give some similar functionality to what you described here.

Rather than channels, you could have "filters" specified on the account for each self-label the account tags on their skeets. (Technically, this is already accomplished using feeds and content labels) This would also allow for you to post to multiple "channels", rather than posting to a "specific channel".

The question is whether everything here could be accomplished with self-labelling and feeds, or not. I'll need to think through it more.

HeyItsLollie commented 1 year ago

For what it's worth, the reasoning I landed on for limiting posts/reposts to a single category VS labeling posts/repost with multiple categories, is that "one category per post" is unambiguous and simplifies the rules around filtering. I figured if you wanted a post to appear in more than one category, it could be reposted into additional categories afterwards.

That level of simplicity isn't a hard-need requirement though. There's clear benefits to having multiple labels too, and they could be relatively just as easy to filter. EG: Labels could have three levels of filtering - Subscribe, Unfiltered, and Mute, where "Unfiltered" and "Mute" would be the difference between a soft "I don't subscribe to this label, but it's allowed to appear alongside a Subscribed label" and a hard "Never show any posts with this label."

Also, yeah, self-moderation is going to be very important when it's eventually implemented. But I really don't believe it'll be enough on its own - we need true privacy settings here. Privacy per post, privacy per account. Privacy per label/category/feed, whatever that ends up looking like.


I actually feel Feeds could fulfill a lot of the "user-defined timeline" and "controlling what appears on your Following page" aspects, it's just that their current design and implementation really limits their usefulness. I mentioned it at the end of the post, but users are already trying to use Feeds to fulfill the "user-defined timeline" part of what I've described with Channels. SkyFeed.app (on Bluesky here) is one of the more popular tools for authoring custom feeds, and one of its more common use-cases for artists is to create a per-user feed that catches "#art" tags. But there's a lot of issues with using Feeds this way, two of the bigger ones being:

The fact that Feeds currently rely on outside servers and tools to make them useful... really limits who can actually use them in the first place. We'd need tools in the app's front-end that can be accessed by everyday users.

Oldrego commented 1 year ago

Your second point could be solved by creating a unified feed showing all posts which have an "art" self-label created by individuals you follow. But filtering posts through all timelines isn't currently possible, outside of moderation labels (which aren't user-specific).

This doesn't satisfy your final point, though. However, I think that third-party tools like SkyFeed allow for the creation of better tools which will have capabilities hard to implement within the app itself.

It doesn't aid in controlling what you see on your Following page. (You can't use a Feed to show or hide content from your Following page.)

This is the most important part of your request, because it isn't something that labels and feeds can accomplish.

If there was the capability to choose labels to "hide / warn / display" per user, then that could be an incredibly powerful tool that would possibly be in scope.

pfrazee commented 1 year ago

There are some nice ideas in here (and some nice mockups!). The two premises that stand out to me are:

  1. A way to post topically to interested followers
  2. A way to post privately

For 1, I do actually think we can evolve hashtags and related controls in that direction. Feeds will be a factor, but I think some pretty simple controls around hashtags could do a lot of what you're saying (if we choose to invest in it). For a simple example, if it were possible to declare on your profile your main hashtags, a lot of the controls you're proposing with channels would be possible.

For 2, we're going to need to make some protocol updates to make it feasible, so I gotta just say "someday" for now.

HeyItsLollie commented 1 year ago

I place a lot of value in mock-ups! Way easier to communicate ideas when you don't have to ask others to imagine them. 💁

The big thing about topical posts that I want to keep highlighted, is how much value there is in having control over the kinds of posts that appear on your default Following timeline - especially if that control could be set at a per-Follow level. It'd go a long way in helping people make the most out of the platform and tailor the experience to their own wants/needs. If that could be achieved with tags and Feed controls, I'd be happy.

Understood on Privacy controls, that's what I expected going into this. To boil it down, I'd love to see per-post privacy controls (eg: Mastodon has Public, Follower-only, and "Unlisted" posts that require direct links to view), but even account-level privacy settings (Public & Locked) would be better than nothing.

Thanks for taking the time to read through it all too, I really appreciate it.