content surface · pds + constellation

<atproto-list>

Render an app.bsky.graph.list record with its members. Header from the list record itself, members via listitem:list backlinks.

<atproto-list src="at://.../app.bsky.graph.list/..." limit="32"></atproto-list>
NameTypeDefaultDescription
src * string AT-URI of the app.bsky.graph.list record.
limit number 32 Members shown in the avatar grid.
constellation string Override the Constellation endpoint.

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

PartWhat it is
article / headerOuter container + header cluster.
avatar / name / purpose / ownerHeader pieces.
descriptionList description text block.
members / members-head / gridMember-grid section.

Header comes from the list record's own PDS fetch (name, purpose, description, avatar). Members come from a single Constellation backlinks call — all the listitem records whose .list points at this list URI. For each listitem, we fetch the record itself (one call) to read the member DID from .subject, then batch-resolve profiles via the shared actor-grid helper.

<atproto-list-memberships> — the reverse: given a DID, find every list that contains them.