How many Dutch accounts are there?
AT Protocol has no country field. Accounts carry no location, and neither the identity records nor the profile records say where someone lives. So we do two things instead: we count the Dutch accounts we can point to, and we model how many there probably are in total.
Time to get nerdy with numbers!
Short answer: at least 3.488, probably around 230.000.
Updated 25/09/2026
Two main numbers
The confirmed number can fall as well as grow: we drop accounts whose Dutch evidence is gone, like an expired domain.
Nobody counted the modelled total; we derive it below.
What these accounts show
Every did:plc identity has a public log, and every repo lists the collections it holds. That tells us when these accounts were created, where they run, and which apps they use. This covers the 3.488 confirmed accounts, not every Dutch account.
When these accounts were created
Which apps they use, beyond Bluesky
Only 922 accounts (26%) of the 3.488 use anything other than Bluesky. When they do, this is what they use:
Accounts holding records from that app in their repo, counted once per app however many record types they hold. Bluesky's own collections are left out, since nearly everyone has them. This counts accounts, not records. This only sees apps that write their own records. A client that just reads Bluesky data, like Skywalker or Graysky, leaves nothing in a repo and so cannot appear here, however heavily it is used.
By record type
-
site.standard.publication282 accounts -
site.standard.document261 accounts -
community.lexicon.payments.webMonetization212 accounts -
blue.flashes.actor.profile207 accounts -
net.anisota.beta.game.log187 accounts -
net.anisota.beta.game.session187 accounts -
blue.flashes.feed.post140 accounts -
social.pinksky.app.preference74 accounts -
net.anisota.harvest.minigame72 accounts -
social.mu.newsFeedPrefs60 accounts -
sh.tangled.actor.profile59 accounts -
tech.tokimeki.poll.vote53 accounts -
id.sifa.profile.self48 accounts -
id.sifa.profile.position47 accounts -
site.standard.graph.subscription46 accounts -
id.sifa.profile.language43 accounts -
id.sifa.profile.education42 accounts -
id.sifa.profile.skill42 accounts -
id.sifa.profile.externalAccount33 accounts -
social.popfeed.actor.profile32 accounts -
id.sifa.graph.follow30 accounts -
sh.tangled.publicKey29 accounts -
net.anisota.beta.game.progress28 accounts -
uk.skyblur.post27 accounts -
buzz.bookhive.book27 accounts -
sh.tangled.repo27 accounts -
social.popfeed.feed.listItem25 accounts -
sh.tangled.graph.follow25 accounts -
net.anisota.player.state24 accounts -
social.popfeed.feed.list24 accounts
Where they run
1.004 accounts (7.3%) live on a PDS outside Bluesky's own hosting.
-
eurosky.social602 accounts -
atproto.brid.gy216 accounts -
pds.wsocial.network31 accounts -
pds.jdkserver.nl9 accounts -
bluesky.emiellr.nl7 accounts -
blauwski.nl6 accounts -
emphisia.nl5 accounts -
mijnbluesky.nl5 accounts -
bsky.kairu.nl5 accounts -
bluesky.zark.nl5 accounts
Where each number comes from
Each source finds largely different accounts. Summed they come to 3.675; deduplicated by DID, 3.488 remain.
Dutch-speaking accounts
Accounts we have seen posting in Dutch. This is NOT counted into the floor above, deliberately: Dutch is also spoken in Belgium, so the language does not tell us which country someone is in. Roughly a third of Dutch speakers live in Flanders.
18.719 posted Dutch
- 698 independently confirmed by another source
- 18.021 this signal only, so country unknown
How we measure this
From the public Bluesky firehose: we sample posts over several days, keep the ones language-tagged Dutch, and collect the accounts posting them. Accumulated over time, so it only grows. It feeds the estimate further down, not the floor.
- Dutch domain 2.254
-
Their username ends in a Dutch domain, like .nl or .amsterdam.
How we measure this
From the PLC directory, the network-wide registry of every atproto identity: we scan each account's current handle and keep the clearly-Dutch domains (.nl, plus city and region domains like .amsterdam and .frl). A full scan runs for hours, so this number climbs until it finishes. We re-check this list daily: if the domain lapses or the account disappears, it stops counting.
- Starter pack 1.246
-
Someone put them in a Dutch starter pack, a hand-picked list of accounts to follow.
How we measure this
From a curated list of clearly-Dutch Bluesky starter packs: we read each pack's members via the AppView and union them.
- Companies 150
-
A Dutch organisation whose own website domain is the account.
How we measure this
From Sifa's entity database: NL-based organisations (by recorded HQ country or a .nl website) whose website domain is itself an atproto account.
- Self declared location 25
-
They wrote a Dutch location in their Sifa ID profile themselves.
How we measure this
From Sifa ID profiles: accounts whose profile lists a location in the Netherlands.
What we model
The floor only counts those who make themselves visible. Anyone posting in English, without a Dutch domain, in no starter pack, stays invisible to all five detectors. To reach a real number we have to stop counting and start modelling.
- 46.184.219 Bluesky accounts
- ~350.000 Dutch-speaking accounts
- ~230.000 in the Netherlands
Every multiplication step above is an assumption.
How big the ecosystem is
Bluesky has around 46 million accounts (bsky.jazco.dev/stats). We use this as the base to scale from. The wider AT Protocol identity count is higher, but includes bots, spam, and deleted accounts, which is what a full PLC-directory crawl like sifa.id/stats counts.
How much Dutch gets posted
We sample the public firehose and count posts tagged Dutch. About 0.761% of posts are Dutch, measured over a window of roughly 18 hours. Every account we see posting Dutch goes into the floor above. The true total is higher: many Dutch speakers post rarely, or in English.
What could be wrong
- Language is not country. Dutch is also spoken in Belgium and abroad, so we scale down to the share of Dutch speakers who live in the Netherlands (roughly two thirds).
- Many people here post in English, especially the developer crowd this community is built around, so they never show up as Dutch and go uncounted.
- We measure posts, not people, and then use that to estimate accounts. Someone posting fifty times a day counts fifty times as heavily as someone posting once a month, so the mix of posts is not the mix of accounts.
- Our firehose sample drops messages under load, so the measured counts are lower bounds.
Most of this pushes the count down rather than up. If the estimate is off, it's more likely too low than too high.
Check it yourself
The measurement scripts live in this site’s repo. They read the public Jetstream firehose, need no login, and print the raw numbers.
uv run scripts/estimate-nl-users.py 86400 nl-24h.json
tangled.org/atcommons.eu/website
, the scripts live in scripts/.
Make this number better
The floor rises as detection improves, and you can help: set a Dutch domain as your handle, put a Dutch location in your Sifa ID profile, or curate a Dutch starter pack. More visible means more countable.
Updated 25/09/2026