how do bookmarks work on bluesky

I saw a lot of people in my feed asking if the new bluesky bookmark features are public or private.

I checked & double checked my data in the atproto-browser after bookmarking a few posts, and didn't see any app.bsky.bookmark.createBookmark which is what I'd expect to see based on the PR that merged in bookmarks (how cool is it that you can just.... check the PR 🤯 or the issue that spawned it)

but you can see right there in the description:

Creates a private bookmark for the specified record.

but 🤔 what does private mean? ATProto was originally designed for public social data. each user has a data repository (like a git repo) where all records (likes, follows, etc) are stored and shared automatically with the broader ecosystem and firehose.

@keith.is on PDSLS an incredibly helpful tool for browsing

and not only from bluesky! as you can see from my PDS above, it's got data from smokesignal (an events platform), tangled (git, on atproto!), and 🌿 leaflet.

this is all public and anyone can look at it at any time. i have an "alt account" and know that all of the images that i post to that account are public, they and can be scraped easily from the firehose.

but bookmarks need to be private. when you save a post for later, that information shouldn't be broadcast across the network (please).

they're saved "off protocol". they live in your PDS, but outside of your public repository structure. posts and likes flow through the firehose for any service to index (this one shows all of the images posted to bluesky as they're posted. warning: you will see a lot of dicks) but bookmarks are in a private corner of your pds, only accessible with an authentication header that has your credentials. this is the same way that muted words and preferences work. you can take them with you to another PDS, but other users can't see them.

are bookmarks on bluesky private and only visible to the creator? yes!

but not blocks! blocks are a much harder problem to solve and keep private at the same time. bookmarks are only for app.bsky.feed.post - and so only bluesky and it's clients care about the bookmarks you make. blocks however require network-wide coordination. if you've blocked someone your PDS needs to reject their replies, app views need to filter their content from your feeds and relay services need to respect the block.