constellation · intersection
<atproto-mutuals>
Intersection of two actor sets via Constellation's many-to-many endpoint. Default: who follows BOTH a and b. Override `source` for like/repost/reply/quote intersections.
Live
<!-- followers in common -->
<atproto-mutuals a="did:plc:..." b="did:plc:..." source="follow"></atproto-mutuals>
<!-- accounts that liked both posts -->
<atproto-mutuals a="at://.../post/x" b="at://.../post/y" source="like"></atproto-mutuals> Attributes
| Name | Type | Default | Description |
|---|---|---|---|
a * | string | — | First subject (handle, DID, or AT-URI). |
b * | string | — | Second subject — same shape as a. |
source | string | follow | Relation key from SOURCES — follow, like, repost, reply, quote. |
limit | number | 16 | Avatars per page. |
constellation | string | — | Override the Constellation endpoint. |
Parts
External CSS can target these via atproto-mutuals::part(<name>) { ... }.
| Part | What it is |
|---|---|
head / grid / actor / actor-avatar / loadmore / empty | Same as atproto-followers (shared actor-grid base). |
What it does
Queries Constellation's getManyToMany XRPC endpoint with two
subjects and a shared source:pathToOther. Returns DIDs whose
records link to BOTH subjects via the named relation.
Out of the box the source defaults to follow
— answering "who follows both of these people?" — but any key in the
library's SOURCES table works: like, repost,
reply, quote, follow.
Handle resolution gotcha
The a and b attributes accept handle, DID, or
AT-URI. Handle resolution requires the handle's domain to serve
/.well-known/atproto-did with CORS open. Most
*.bsky.social handles don't, and custom domains vary — if
either subject 404s on well-known resolution, the whole query fails with
"Failed to fetch".
For reliable demos and production, pass DIDs directly. The demo above uses DIDs for both subjects to sidestep the issue entirely.
Use cases
- Audience overlap: who follows both you and a peer? Useful for collaboration / audience analysis.
- Content overlap: which accounts liked both a post and a related post? Proxy for topic resonance.
- Conversation overlap: who replied to both threads?
Related
<atproto-followers> is the single-subject version for
follow relations. <atproto-backlinks> gives you the top-level
"what links to this one subject" view.