constellation · actor grid

<atproto-blockers>

Accounts that publicly blocked this user. Block records are firehose-public; Bluesky's UI hides the reverse direction but the data is on the wire.

<atproto-blockers src="handle.bsky.social"></atproto-blockers>
NameTypeDefaultDescription
src * string Handle or DID.
limit number 16 Avatars per page.
constellation string Override the Constellation endpoint.

External CSS can target these via atproto-blockers::part(<name>) { ... }.

PartWhat it is
head / grid / actor / actor-avatar / loadmore / emptySame parts as all actor-grids.

ATProto block records are committed to the firehose and fully public. Constellation indexes them. Bluesky's UI intentionally hides this information from the subject of a block — you can't see who's blocked you on bsky.app — but the records aren't private.

Surfacing this is a social-norms decision, not a technical one. Think about what shipping this UI does to the people whose blocks become visible. In contexts like debugging, moderation research, or personal dashboards, it's a legitimate surface. In a public embed, it may not be.

<atproto-followers> — the positive-valence sibling. <atproto-backlinks> — shows the block count alongside every other inbound-link kind.