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.
Live
<atproto-blockers src="handle.bsky.social"></atproto-blockers> Attributes
| Name | Type | Default | Description |
|---|---|---|---|
src * | string | — | Handle or DID. |
limit | number | 16 | Avatars per page. |
constellation | string | — | Override the Constellation endpoint. |
Parts
External CSS can target these via atproto-blockers::part(<name>) { ... }.
| Part | What it is |
|---|---|
head / grid / actor / actor-avatar / loadmore / empty | Same parts as all actor-grids. |
Use thoughtfully
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.
Related
<atproto-followers> — the positive-valence sibling.
<atproto-backlinks> — shows the block count alongside
every other inbound-link kind.