primitive · constellation

<atproto-distinct-count>

Count of distinct DIDs linking to a subject. The 'how many unique people' twin of atproto-generic-count.

Total likes: — Unique likers:

Followers (distinct DIDs):

<atproto-distinct-count
  subject="at://..."
  source="app.bsky.feed.like:subject.uri"
  label="unique likers">
</atproto-distinct-count>
NameTypeDefaultDescription
subject * string AT-URI, DID, or any backlink target.
source * string 'collection:path' format. Path takes no leading dot — e.g. 'app.bsky.feed.like:subject.uri'.
label string Suffix label after the count.
constellation string Override the Constellation endpoint.

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

PartWhat it is
count / number / labelOuter span, numeric value, and optional label suffix.

Constellation exposes two separate count shapes: total RECORDS and distinct DIDS. A single account posting two like records to the same post counts twice in total-records but once in distinct-dids. For most "how many people" questions, distinct-dids is the more honest number.

Use <atproto-generic-count> when you want record count (raw engagement activity). Use <atproto-distinct-count> when you want people count (reach / breadth). Both share the same subject / source / label API.

  • A user toggles a like off and back on — two like records, one DID
  • Follow records can be re-emitted after a migration — again, multiple records per DID
  • For custom lexicons, you control what a "record per subject" means; distinct-DIDs is the aggregator-proof answer

<atproto-generic-count> for total record count. <atproto-backlinks> shows both simultaneously in a table — discover which sources have interesting divergence.