bluesky-social / social-app

The Bluesky Social application for Web, iOS, and Android
https://bsky.app
MIT License
11.27k stars 1.43k 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 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".

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 10 months ago

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

mackuba commented 10 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 10 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 6 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 5 months ago

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

mackuba commented 5 months ago

Nope, still just an idea at this point

IPv6 commented 4 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 3 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 3 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 3 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 3 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 2 months 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 2 months 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 2 months 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 2 months ago

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

surfdude29 commented 2 months 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 1 month 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.

ICEknigh7 commented 4 weeks ago

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

To avoid a hostile reaction.

Blocking and then unblocking works wonders for this, at "the other place".

Sininini commented 3 weeks ago

I also hate how my followers number is inflated by bots and engagement farmers despite having blocked them.

Simplyjennifer commented 3 weeks ago

I find it incredibly surprising that blocking someone doesn’t remove them as a follow - It’s something I believe most people would find to be expected behavior on a social media platform.

I am completely and utterly exhausted at the thought of unblocking every single block, unfollowing, and reblocking.

There’s no recourse to being added to a blocklist, which will often happen as people block all of a bad actor’s followers as a preemptive measure.

I really want to love this app but I feel like I just lost my brand new toy.

ccjhjh commented 3 weeks ago

I've tried to block and unblock someone, and the account still in my follower list. That's frustrating. It's doesn't meant to unsee any of strangers, I just want to let them not keep watching me. You know, some people or bot just random following some accounts and they don't care about them, but I do care.

I think it will be better if we can unfollow each other, when we want to know each other someday, in a normal way, then we have a chance to follow again. But when it comes to block anyone, it sounds like I give no chance of it.

ICEknigh7 commented 2 weeks ago

And there's also this related problem here: https://github.com/bluesky-social/social-app/issues/2028

It's impossible to unfollow somebody who blocked you.

JoshMLeslie commented 5 days 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…) @mackuba

A bit aside, but while digesting this thread I whipped up a quick button as I imagined this. I think giving people granular control has merit. image

edit: comment attribution

scottdotweb commented 5 days ago

"A block that disallows any interaction but doesn't hide your posts" - I believe the name for this is "the Elon".

Tyri0n commented 2 days ago

Please add this. I don't want any followers.

surfdude29 commented 2 days ago

And there's also this related problem here: #2028

It's impossible to unfollow somebody who blocked you.

It's impossible through the app, and I agree that should be fixed, but you can use this great tool to do it:

https://cleanfollow-bsky.pages.dev/

cooljeanius commented 1 day ago

A bit aside, but while digesting this thread I whipped up a quick button as I imagined this. I think giving people granular control has merit. image

edit: comment attribution @JoshMLeslie

I think something like this would be useful, but it'd be important to clarify the terminology first. Is "Block User" just the combination of the other two options, or would it do additional things?

markski1 commented 2 hours ago

Even if for some reason implementing this explicitly was something "to be discussed". Is there any technical reason why blocking and unblocking doesn't force an unfollow? If it's just a matter of implementing it, is there any reason why it shouldn't be this way?