social-app icon indicating copy to clipboard operation
social-app copied to clipboard

Ability to remove a follower

Open aneillans opened this issue 1 year ago • 62 comments

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".

aneillans avatar Aug 14 '23 12:08 aneillans

Hi

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

mschwendener avatar Aug 14 '23 12:08 mschwendener

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.

aneillans avatar Aug 14 '23 12:08 aneillans

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

mschwendener avatar Aug 14 '23 12:08 mschwendener

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.

pfrazee avatar Aug 14 '23 16:08 pfrazee

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.

aneillans avatar Aug 15 '23 08:08 aneillans

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.

littlejackal avatar Aug 22 '23 12:08 littlejackal

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.

mackuba avatar Aug 22 '23 12:08 mackuba

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.

mschwendener avatar Aug 22 '23 12:08 mschwendener

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

JadeNishikawa avatar Oct 24 '23 18:10 JadeNishikawa

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

serenacloos avatar Dec 31 '23 08:12 serenacloos

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 avatar Jan 03 '24 02:01 mackuba

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 avatar Jan 03 '24 16:01 mackuba

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.

pfrazee avatar Apr 25 '24 01:04 pfrazee

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

rszasz avatar Jun 01 '24 00:06 rszasz

Nope, still just an idea at this point

mackuba avatar Jun 01 '24 00:06 mackuba

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"

IPv6 avatar Jul 16 '24 12:07 IPv6