bluesky-social / social-app

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

Ability to remove a follower #1160

Open aneillans opened 1 year ago

aneillans commented 1 year ago

Feature request: Ability to remove a follower from your followers, either via soft block (block and unblock) or via a simple remove process.

At present if you block someone, and then unblock them later they are still following you .. this can be unexpected and is a behaviour pattern that is dissimilar to all other social networks. Additionally, there is no other way to remove a follower from your "herd".

mschwendener commented 1 year ago

Hi

Just out of curiosity: why would you want to remove a follower but not block them?

aneillans commented 1 year ago

Hi

Just out of curiosity: why would you want to remove a follower but not block them?

Good question; its more a friend dynamic I've observed on other network occurring at times (not sure it's one I entirely subscribe to myself, but hey ho). They seem to remove people they are ... not talking to ... but are in the same friend circles without outright blocking as it can cause issues on some networks when following conversation threads etc.

However, I do fine the lack of automatic removal of follower status upon block unexpected (and unusual) behaviour.

mschwendener commented 1 year ago

I do find the lack of automatic removal of follower status upon block unexpected (and unusual) behaviour.

I agree https://github.com/bluesky-social/social-app/issues/1162

pfrazee commented 1 year ago

This is something we've discussed pretty heavily internally -- we don't yet know how to do it reliably.

The issue is that every user controls their own dataset. When I "follow" somebody, what I'm doing is publishing a follow record on my account. When I block somebody, same thing: I publish a block record. A block record can override the behaviors of a follow record, but it can't force-remove the follow record from somebody else's repository.

We have discussed a voluntary removal of the follow record. That is, if somebody blocks me, my server automatically deletes my follow record. The only concern is that it's impossible to force. A server that's misbehaving (intentionally or not) wouldn't delete the follow record, so there would be some confusing scenarios where soft-blocks don't work. That led to some discussion of whether we could try to enforce voluntary behaviors by social pressure (eg "Follow the protocol or your server will be penalized") but we haven't established a framework for that kind of governance yet so we're hesitant to move forward with it.

A subsequent proposal to require "follow requests" has been discussed (https://github.com/bluesky-social/atproto/issues/1352) which is technically feasible but adds a little more friction than we want for the default model.

That leaves us where we currently are, which is tracking these two options but not ready to move on either yet.

aneillans commented 1 year ago

This is something we've discussed pretty heavily internally -- we don't yet know how to do it reliably.

The issue is that every user controls their own dataset. When I "follow" somebody, what I'm doing is publishing a follow record on my account. When I block somebody, same thing: I publish a block record. A block record can override the behaviors of a follow record, but it can't force-remove the follow record from somebody else's repository.

We have discussed a voluntary removal of the follow record. That is, if somebody blocks me, my server automatically deletes my follow record. The only concern is that it's impossible to force. A server that's misbehaving (intentionally or not) wouldn't delete the follow record, so there would be some confusing scenarios where soft-blocks don't work. That led to some discussion of whether we could try to enforce voluntary behaviors by social pressure (eg "Follow the protocol or your server will be penalized") but we haven't established a framework for that kind of governance yet so we're hesitant to move forward with it.

A subsequent proposal to require "follow requests" has been discussed (bluesky-social/atproto#1352) which is technically feasible but adds a little more friction than we want for the default model.

That leaves us where we currently are, which is tracking these two options but not ready to move on either yet.

Either the voluntary removal, or an additional record type of a literal soft-block to let you track or flag when a remote account should do that removal next time it refreshes or "sees" the records? Just trying to think about how it all works on the Fediverse, and while the same misbehaving server issue remains there (you will never remove that chance IMO in a distributed environment), but as you can say you can potentially govern on some avenues.

littlejackal commented 1 year ago

Hi

Just out of curiosity: why would you want to remove a follower but not block them?

I agree with the original request although I can't exactly articulate why this is desired vs outright blocking without citing vague concepts like how blocklists are perceived and unnecessary follower association "feels".

Not being a public or notable figure it was plainly obvious which accounts were simply engaging in bot-like behaviour or follower-spam and which were genuinely interested in interacting with me and my content. I routinely pruned mass-follow accounts when it made sense, but it was by no means a scientific process.

From a day to day perspective there's no difference at all to my bsky experience whether "@buy-bitcoin-cheap-today.bsky.social" follows me or not; they're unlikely to ever actually interact with me in any meaningful way. But when I look at my follower list I see "friend, friend, friend, acquaintance, artist I'm interested in, news org, obvious mass-follow account, friend" and I'm just left with a vague desire to prune. On birdsite it was easy enough to block/unblock, took two seconds and I'd most likely never see the account again, but it sounds like there are technical reasons this may not be feasible here.

Leaving a profile on a blocklist I found to have a connotation of engaging in (actively) unacceptable activity and being a profile I really and truly do not wish to interact or be associated with, but again, I can't cite anything other than personal preference on this. If blocking is the best feasible solution to a mass follow profile showing up on my "Followers" list then this is certainly not a hill I'm willing to die on -- I'll be happy to keep blocking mass follow accounts and lump them in with accounts I actively want to prevent interacting with me.

No real solutioning in this reply, but hopefully this mirror the way others feel.

mackuba commented 1 year ago

Yup, pretty much this @littlejackal. As someone with a fairly small account, I like to look at my follower lists / follower count, and see that I'm followed by let's say 200 people who are interested in what I post. Accounts like that anime pictures one that follows 100k profiles obviously aren't reading what I post, so they are just inflating that follower count artificially.

This obviously doesn't apply above some level of follower count where looking at the list or even reading follow notifications stops making sense.

mschwendener commented 1 year ago

I added a note to https://github.com/bluesky-social/social-app/issues/1161 that "can't become my follower" would be a good setting in such cases.

JadeNishikawa commented 11 months ago

Feature request: Ability to remove a follower from your followers, either via soft block (block and unblock) or via a simple remove process.

At present if you block someone, and then unblock them later they are still following you .. this can be unexpected and is a behaviour pattern that is dissimilar to all other social networks. Additionally, there is no other way to remove a follower from your "herd".

as of right now bluesky now has a bot issue because of people posting their invite codes on twitter/x right now you can block followers you don't want accessing your profile but it doesn't completely remove them i think follower removing like twitter/x has would be a great idea so you can keep tabs on real followers and weed out the fake ones

serenacloos commented 9 months ago

+1 Please add the option that let’s you unfollow.

mackuba commented 9 months ago

Copying here what I wrote on Bluesky about how this could be handled:

We could have some additional record type for this purpose, let's say an "unfollow" or "softblock" or "denyFollow" record. This would be like a reverse, negative follow, a record that you'd add to your repo, pointing in the opposite direction, indicating that you don't want to be followed by that account (it would be a permanent effect until you delete the record, not a one-time thing like classic "soft blocking" is on Twitter; the user would see the follow button disabled on your profile).

The way it would work is that AppView would take that into account and would make it seem as if the user is not following you, even though they technically have a follow record pointing to you. It would effectively make that follow from them to you disappear, even though the record is there.

The precedent for this is how posts are handled in AppView in the context of blocks and thread gates. If someone replies to you and you block them, that comment "disappears", even though there is still a post record in the author's repo - but AppView pretends that it doesn't exist. In the same way, it would pretend that the follow record doesn't exist.

mackuba commented 9 months ago

Alternatively, we could reuse the block record type and add multiple types of blocks, specified by some additional "type" field: you could have e.g. a block that blocks access to posts like it does now, a block that disallows any interaction but doesn't hide your posts, and a block that just disallows following like described above. (But this might be too hard to implement in the UI in a way that's easy to understand…)

pfrazee commented 5 months ago

We could have some additional record type for this purpose, let's say an "unfollow" or "softblock" or "denyFollow" record.

That really isn't an absurd thought, now that I consider it. It's still somewhat public but, you know, wcyd.

It's actually possible to do this permanently (disabling the follow option for the subject) or on a one-time-basis by simply including the URI of the follow you want to disable.

rszasz commented 4 months ago

Just a follow-up if this has been implemented or is still an open request.

mackuba commented 4 months ago

Nope, still just an idea at this point

IPv6 commented 3 months ago

Alternatively, we could reuse the block record type and add multiple types of blocks

Sounds reasonable and useful. There is a gradient of possible/wanted "feedback from other followers", where block is one of the extreme final "do not welcome here" status, and softblock more like "don`t bother me on each post please"

ygg2 commented 2 months ago

I'm inclined to think both are useful - the idea of a public denyFollow record that prevents someone from ever following again seems like a nice feature, but it'd still make sense to be able to ask the server to remove its follow record, since then any other behavior that relies on follows would work as expected, and people wouldn't be able to look up who has softblocked them later.

A server could decide not to comply, but in the grand scheme of things, they can already be non-compliant in other areas like deleting content or removing spammers. Maybe request the server to delete the follow, but in the event a server doesn't comply, there can be an AppView override...?

AdamTheoDotCom commented 2 months ago

I really like this solution since it uses positive public records of approvals instead of a punitive "block-like" record.

https://github.com/bluesky-social/atproto/issues/1352

IPv6 commented 2 months ago

I really like this solution since it uses positive public records of approvals instead of a punitive "block-like" record.

5 centes: facebook-like approves is a different approach to twitter's "block/softblock". And softblock imho better one. Approve puts a difficulties/discomfort on the follower, make it harder to subscribe.

it is visible on facebook - friend requests are sent either by spammers or after private messaging, good connection "out-of-blue" are rare. Facebook even faking friend requests by sending spoofy suggestions. Denies hurts a little and after several denies average user just dump the feature.

On twitter following is much more lightweight, does not prevent organic followers grow and softblock is not a "deny" - it`s an option to not see follower in own feed, allowing him to see what he want in his feed. No regrets, no dumping feature by users :)

scottdotweb commented 2 months ago

I really like this solution since it uses positive public records of approvals instead of a punitive "block-like" record.

bluesky-social/atproto#1352

Blocking an account isn't "punitive" and it's an entirely erroneous direction to attempt to ascribe moral values to the data.

valzargaming commented 1 month ago

If this feature were implemented, wouldn't it also be beneficial to extend the ability to restrict access across the entire platform, rather than just individual users? For example, it could be useful to allow accounts to restrict access by permitting interactions only from followers associated with a specific @domain.tld, or conversely, to block all interactions from accounts associated with a specific @domain.tld. By separating permissions into separate allow/disallow elements it would enable servers to enforce their own user's settings without infringing on the settings of others.

chk-L commented 1 month ago

So, a year later, there is no option to remove a follower? I'm new to this social media, so I'm not aware of everything, but I tried to block an account and it wasn't effective. Any alternatives?

qtlunya commented 1 month ago

Blocking an account will sort of make them effectively no longer follow you, but if you unblock them they will be following you again. Still no way around this as far as I know.

mackuba commented 1 month ago

I think Paul said he was working on some ideas for this last week

surfdude29 commented 1 month ago

I think Paul said he was working on some ideas for this last week

He did, if I'm thinking of the same post:

Also fwiw some of these specific asks like list removal or soft blocks, we are also looking at how to get them done. I just wrote another protocol proposal for soft blocks. It bugs me that it’s hard

https://bsky.app/profile/pfrazee.com/post/3kzutz7zq3o2e

tengille commented 3 weeks ago

Joined BlueSky (edit: yesterday) and immediately got a "adult content" bot follower. I would like the ability to remove them either via block / unblock functionality OR a button that removes that follower when I go to their profile.

When I block, they're still following me. I don't want adult content bots to follow me. This is why I don't have that other site.