Does Bluesky Notify Screenshots? Every Notification It Can Send
No. Bluesky has never notified anyone about a screenshot, and it has no way to — a screenshot happens on your device and never reaches Bluesky's servers. More usefully, the complete set of notifications that can land in your notifications tab is a fixed list of 13, written down in the protocol, and screenshots, profile views, bookmarks, unfollows and blocks are none of them. Direct messages are the one thing outside that list; they notify through a separate chat namespace, along with message reactions.
That list is public, so rather than answer these one at a time — screenshots, saved photos, profile views, unfollows — I went and read it, along with the server code that decides when each notification fires. What came back is a better answer than "no": Bluesky notifies less than almost any platform you have used, and records more in public than most people assume. Those are two different things, and the pages ranking for these questions treat them as one. The top result for this exact query makes three claims and stops — no screenshot alert, no profile-view alert, "but if someone likes your post or follows your account, you will get a notification" — which is true, and about a fifth of the story.
Does Bluesky Tell You If You Screenshot a Post?
No, and there is no machinery in the protocol that could. Taking a screenshot is an operating-system action. Your phone doesn't tell the app it happened, the app has no way to report it, and the server has no notification type to deliver if it did. On the web version it's even further removed — the screenshot is a picture of pixels your own browser already drew, and Bluesky's servers are not involved in any part of it.
Profile views are a stronger claim, so here is how I checked it: I went through every lexicon under app.bsky — 164 of them, including the unspecced experimental ones — looking for anything that records a read. There is no view-tracking endpoint at all, no view counter on a post, no getProfileViews. Nothing tells you when someone views your profile, and nothing tells them when you look at theirs, because the number is never collected in the first place. A request to display post view counts has been open since January 7, 2025, and an earlier one was closed in December 2023 by Bluesky's Paul Frazee: "We're probably not going to do this, I'm afraid. For one, we can't get an accurate count due to the open network. For two, I'm not a big fan of collecting this metric." So if a site offers to tell you who visits your Bluesky profile, it is guessing or lying — there is no data for it to sell. (A third-party app view could of course count views of its own users. Nothing stops it, and nothing surfaces it either.)
What Does Bluesky Actually Notify You About?
Bluesky does have notifications — thirteen kinds, and you can read the list yourself. Every notification carries a reason, and the allowed values are enumerated in app.bsky.notification.listNotifications, the schema Bluesky's own servers and every third-party client are built against:
| Reason | What triggers it | In the schema since |
|---|---|---|
like |
Someone likes your post | Launch set, 2023 |
repost |
Someone reposts your post | Launch set, 2023 |
follow |
Someone follows you | Launch set, 2023 |
mention |
Someone puts your handle in a post | Launch set, 2023 |
reply |
Someone replies to your post | Launch set, 2023 |
quote |
Someone quote-posts your post | Launch set, 2023 |
starterpack-joined |
Someone signs up through your starter pack | June 2024 |
verified |
You receive a verification | April 2025 |
unverified |
Your verification is removed | April 2025 |
like-via-repost |
Someone likes your post inside another account's repost | May 2025 |
repost-via-repost |
Someone reposts your post from another account's repost | May 2025 |
subscribed-post |
An account you subscribed to posts | June 2025 |
contact-match |
Someone from your phone contacts turns up on Bluesky | December 2025 |
Those dates are when each reason entered the protocol schema, which I pulled from the commit history of that one file — they run a few days to a few weeks ahead of the feature appearing in the app, so read them as "no earlier than". The shape is the point: six reasons carried the app from its 2023 launch until mid-2024, and seven more have arrived since. Any answer to "what does Bluesky notify?" written before last winter is missing more than half the list.
Can you get a notification when someone posts? Yes, and it's the one people miss. Since July 2025 you can tap the bell on a profile to subscribe to that account's posts, which is what subscribed-post delivers — and the account you subscribed to is not told you did it. They can only shut the door in general: an app.bsky.notification.declaration record sets who may subscribe to them at all, with three options — followers, mutuals or none.
Anything not in that table produces nothing. Being added to a list, for one, and that is not an inference: the list-membership indexer's notifsForInsert function returns an empty array. It's the reason nothing on Bluesky will tell you which lists you're on even though every one of those lists is a public record.
Does Bluesky Notify When You Unfollow or Block Someone?
No to either — and unfollowing does something stranger than staying quiet. I opened the follow indexer expecting a no-op and found the delete handler returning { notifs: [], toDelete }: no new notification, and the notification created by the original follow is deleted by its record URI. The "so-and-so followed you" line disappears from their list retroactively, months later if that's when you got round to it. A comment in the surrounding code says this can even happen lazily, "because listNotifications already excludes notifs with missing records."
I checked the like and repost indexers next, and they are byte-for-byte the same handler. Unlike a post you liked during an argument last year and the notification goes with it. On Bluesky, undoing an action erases the notice that the action happened — which is unusual enough to be worth knowing before you assume a quiet unfollow leaves a trail in somebody's inbox.
Blocking is quieter still at the notification layer. The block indexer's notifsForInsert also returns an empty list, in both directions — you aren't told when someone blocks you either, though there are ways to find out — but nobody needs telling, because a block is a public record anyone can read without logging in. The lexicon admits it in its own description: "NOTE: blocks are public in Bluesky; see blog posts for details." (A schema file that refers you to blog posts for its threat model is very much this protocol's house style.) The blocked person also works it out from the interface, since your posts and their threads stop rendering for them. Mutes go the other way: the lexicon states "Mutes are private in Bluesky," and a mute is a server-side setting rather than a record in your repository, so it stays out of your public data. The exception is mute lists — the list itself and everybody on it are public records, and only your subscription to the list is private.
This is the part that matters if you prune the accounts you follow. Nothing fires when you unfollow someone, but deleting the follow record is an event on the public firehose the moment it happens, and anyone watching that firehose can see it — which is exactly how the tools that tell you who unfollowed you work, with no privileged access at all. That post is the inbound half of this question; this section is the outbound half, and the asymmetry is the whole trap. It's also why my own tool, Agent Sky — $9 a month, free to start — checks whether a follow-back really happened before it unfollows anybody, and defers the unfollow rather than guessing whenever the answer comes back unclear. The unfollow is silent, but it is not invisible, and a follow-then-drop pattern is legible to anyone who cares to look.
Does Bluesky Notify Bookmarks, Saved Photos, or Contacts?
Bookmarks and saved photos, no. Contacts, yes — and that one is the surprise on this page.
Saving a post — the bookmark — notifies nobody, and there is no way for the author to see who saved it, because a bookmark is private by construction rather than by omission. The endpoint that creates one is described as "Creates a private bookmark for the specified record," and it goes into a private store, not into your public repository the way a like does. That's a real distinction rather than a courtesy: likes on Bluesky are public records anyone can enumerate one by one, and bookmarks have no record type at all. Saving somebody's photo is the screenshot case again — a download your device performs, which Bluesky's servers never hear about.
Contact matching is the exception. The contact-match reason landed in the protocol on December 10, 2025, a week before Bluesky launched Find Friends, and the app renders it as, literally, "Your contact so-and-so is on Bluesky." The guardrails are heavy: you opt in, verify a phone number by SMS, and upload contacts; the numbers are stored as hashed pairs; and a match needs both of you to have opted in and to have each other saved. No automated invites go out — TechCrunch's write-up frames that as deliberately dodging the invite-spam problem, and any invitation you receive is one a person chose to send. But it is still a notification about something you did off Bluesky entirely, which nothing else on the list is.
If Bluesky Doesn't Notify You, Does That Mean It's Private?
No — and the three tiers here, rather than two, are the frame worth taking away. "Bluesky doesn't notify X" is true of nearly everything, and it tells you very little about whether X is visible:
| What you did | Notification sent? | Visible to others anyway? |
|---|---|---|
| Screenshotted a post | No | No — never touches Bluesky |
| Viewed a profile or read a post | No | No — not counted anywhere |
| Saved an image | No | No |
| Bookmarked a post | No | No — stored privately |
| Muted someone | No | No — server-side, not a record |
| Unfollowed someone | No (and the old one is deleted) | Yes — public firehose event |
| Blocked someone | No | Yes — public record, and their app shows it |
| Liked a post | Yes | Yes — public record |
| Added someone to a list | No | Yes — public list record |
The top half is invisible in a way it isn't on most platforms, because Bluesky isn't collecting the telemetry to begin with. The bottom half is the reverse: no notification, total public visibility, permanently, to anyone with an HTTP client and a free afternoon. Every relationship you form here is a record in a repository the whole network can read.
Which is a fair trade, as long as you know which half of the table you are standing in. Silence from Bluesky is not the platform keeping your secret — it's that on an open network, nobody has to be told about something they can already read.
Quick FAQ
Does Bluesky notify screenshots?
No. When you take a screenshot, your phone doesn't tell the app it happened, and there is no screenshot notification in the protocol to send even if it did. Every notification in your Bluesky notifications tab carries one of 13 reason values listed in the app.bsky.notification.listNotifications lexicon — like, repost, follow, mention, reply, quote, starterpack-joined, verified, unverified, like-via-repost, repost-via-repost, subscribed-post and contact-match. Screenshots are not on it, and neither is anything else about viewing, reading or saving. Direct messages are the only notification outside that list, and they come through a separate chat namespace.
Does Bluesky notify when you unfollow someone?
No, and it goes further than that: unfollowing deletes the original "followed you" notification from their list. In Bluesky's own AppView code, the handler that runs when a follow record is deleted returns { notifs: [], toDelete } — no new notification, and the old one is removed by record URI. But the unfollow itself is public. Deleting the follow record is an event on the public firehose, which is how third-party "who unfollowed me" tools work without any special access.
Does Bluesky tell you who viewed your profile?
No, in both directions — nothing tells you when someone views your profile, and nothing tells them when you look at theirs. Bluesky does not count profile views or post views at all; there is no view-tracking endpoint anywhere in the app.bsky namespace, so there is no number to show anyone. A request to display post view counts (issue #7387, opened January 7, 2025) is still open, and an earlier one was declined on the grounds that no single server in an open network can see all the views. Any site offering to show you who visits your Bluesky profile is inventing it.
Does Bluesky notify when you block someone?
No notification is sent in either direction — the block indexer's notifsForInsert function returns an empty list, so you aren't told when someone blocks you either — but blocking is not private. The lexicon for the block record says so in its own description: "NOTE: blocks are public in Bluesky; see blog posts for details." The record sits in your public repository where anyone can read it, and the app tells the blocked person indirectly by hiding your posts and threads from them. The lexicon for muting says the opposite — "Mutes are private in Bluesky" — and a mute never touches your repo at all.