Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You have misunderstood. The way Bluesky blocking works is not just about controlling who else can interact with your posts, it affects the posts of others too, and applies to every other user whether they like it or not.

See https://github.com/bluesky-social/social-app/issues/7021 for more detail.

A relevant comment from that issue:

> As it stands, if 20 people are involved in a discussion, and ONE single person decides to block someone, then all of a sudden, the 19 other people in the discussion (+ any other viewers) are now inconvenienced simply because one person had an issue with someone else.

> Bluesky does have a bit of a block culture, and as such, this issue is only going to get worse and worse, and threads are going to get harder and harder to read and follow as more and more people get blocked.

> Just the other day I got a notification, and I clicked on it, and once again, the post they were replying to was "blocked", not because of me, but because the person who made the post blocked the person they were responding to. I was trying to make sense of their post, but now I couldn't as I had no idea what the hell they were replying to... then I think I found the post they replied to; it showed "1 reply", but when I clicked on it, no replies were shown.

> Now, this functionality was probably done with good intentions - but you know what they say, "The road to hell is paved with good intentions".

Another comment explaining the problem:

> This is working as intended but I agree it should be reassessed. For example:

> 1. In a popular thread, User A posts some nonsense

> 2. User B replies to that reply explaining why it's nonsense

> 3. User A blocks User B

> 4. Now User A has successfully hidden the rebuttal to his comment from everyone. The only defense against this is if the thread OP happens to block User A.

> This is a pretty serious downside of the "nuclear block" system imo. It creates an escalation ladder of blocking where the first user to hit "block" is advantaged. On the other hand it causes me personally to avoid blocking where I otherwise would, because I want the conversation to still be visible for others.

> There should at least be a "show reply" button on posts that are hidden for this reason IMO. Otherwise you've given every user the unilateral power to hide a reply, for everyone, permanently. If I hide a reply the normal way, it's not deleted for everyone! There is a "show hidden reply" button! The effect of hiding someone else's reply should be consistent across these two ways to do it.




The beauty of ATProto is that you can build an alternative App View that handles blocks differently. The Bluesky app is open source so you don't have to start from scratch either.

Choice and competition will make this network a better long-term social fabric than the centralized systems we are used to.


What is the incentive to do that, given the costly barrier to entry in both developer time and computing resources?


What's this "costly barrier to entry"? It is certainly not a given from where I am looking

By any account, it is far less than building an independent social network application. The components are also decoupled so you don't have to rebuild everything. If you want to build an App View, it's just a webapp or react native. You don't have to rebuild everything

re: incentives, there are many, people have different perspectives and motivations to do so


The omission of blocked posts is done server-side by the app.bsky.feed.getPostThread endpoint, so you'd need to reimplement that to return the content of blocked posts instead, both upthread (parent) and downthread (replies). It would require acquiring and maintaining your own replica of the data, which is hundreds of gigabytes in size.

This is significantly more complex than making a few small changes to the frontend app.


The filtering of blocked replies is done server-side. You can view whatever top-level posts you want in the protocol; making those visible/invisible is up to the client software.

If I post something that gets traction, and someone replies with an ad for ED pills, I should be able to remove that spam from the discussion on my thread and not just from my view of it. If others have already "engaged" with a plug for boner pills, their replies are not lost but are just no longer part of the thread stemming from my post.

If you as the OP don't want this behavior, there are other tools at your disposal (mute the replier instead, "hide for everyone", etc).


This is absolutely and provably wrong.

I have written my own webapp (https://blebbit.com) and I can see content and accounts I have blocked on Bluesky. I just validated this to be the true. This because I have not implemented block respecting in my own code yet. It's more work to actually respect the blocking.

The full backup of ATProto is more than 5T now.

You seem really misinformed about all of this.

Or maybe you created an account to intentionally spread falsehoods about Bluesky? There has been a flurry of this on HN lately


No, this is not wrong. I will demonstrate. Here is a sample conversation between three users A, B, and C:

https://i.ibb.co/CJkZWBG/image.png

No-one has blocked anyone at this point, so the conversation is visible to all parties and any onlookers.

Your own app shows the same:

https://i.ibb.co/3kxp5Q9/image.png

Now for whatever reason, user B decides to block user A. The entire subthread starting with user B's response to user A is removed, which includes making the discussion between user A and user C no longer viewable in that thread, to anyone:

https://i.ibb.co/j6f9z92/image.png

This appears exactly the same in your app:

https://i.ibb.co/2Px9bw5/image.png

The root cause is that the app.bsky.feed.getPostThread endpoint omits the entire tree of replies for that subthread in its response:

https://i.ibb.co/F45n6QV/image.png

Please feel free to verify this in your own browser and explain why you believe this to be incorrect.



Having to visit the Replies page of user C and try to piece together snippets of conversation - some of which are still unviewable - is not a reasonable solution. In particular, posts 7 and 8 are not there and the link between posts 1 and 2 is severed.


> not a reasonable solution

That's your opinion. The vast majority of ATProto users like the enhanced controls over their conversations. If you don't like it, use a different social media platform


That it's unreasonable to expect users to mitigate this by hunting around others' profiles for snippets of conversation is my opinion, yes.

That one user blocking another user makes chunks of the conversation disappear for everyone else viewing the thread is verifiable fact. As it is a verifiable fact that this is done server-side via the getPostThread endpoint, by which posts in the parent and replies fields of the response are omitted.

This is not "absolutely and provably wrong", as you put it. Maybe do some research yourself before accusing others of intentionally spreading falsehoods?


You said posts were blocked when what you are actually describing is replies being disconnected from a post on that post. They are still visible within the network

It's working as expected

You have made multiple other inaccurate statements about Bluesky / ATProto throughout your comments with your new account


This whole thread nastoy has been making the argument that blocked posts are omitted from the thread for all viewers, and circumventing this behavior requires modifying the relay (and hence ingesting the firehose) not just the client

You have been arguing that blocked posts still appear in your custom client, which is a different claim than nastoy. As detailed by the GitHub issue that started this disagreement, bluesky relays have introduced thread breaking behavior that one can not get around simply by forking the appview.


> As detailed by the GitHub issue that started this disagreement, bluesky relays have introduced thread breaking behavior

"relay" does not appear in that issue, not sure where this idea that relays have introduced thread breaking behavior is coming from


I haven't hacked away at the bluesky api but isn't the aforementioned "app.bsky.feed.getPostThread" called against an instance of a bluesky relay hosted at api.bsky.app, as opposed to a PDS or an appview?

That being the case, when you want to get posts of a thread, the information of which posts belong to which thread are the responsibility of a relay, which is doing the firehose-level-aggregation of which posts belong to which threads, am I misunderstanding?


Well if Mastodon is any indication, there are a ton of third-party FOSS apps for it.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: