AT Protocol across Europe
The AT Protocol community across 33 European countries, each account counted once.
Three main numbers
The first two are separate evidence for the same thing, and they do not overlap: together 108.817 accounts are confirmed European. Of the 74.196 accounts on European PDSes, 1.337 already appear under a country above and are counted there, not twice.
Running on a European PDS is a deliberate choice for European data sovereignty. It tells us an account is European, but not which country, so these accounts appear under no country in the table below. Most accounts are still on Bluesky's US hosting.
How we count
AT Protocol has no country field, so we only count people who left a trace we can read: a country domain in their handle, a location in their profile, a community verifier, a curated list. Each account is counted once. Where signals disagree we place it nowhere rather than guess, so these numbers add up instead of overlapping. Language is never evidence: most European languages cross borders, so posting in German says nothing about living in Germany.
Active 90d is how many of a country's confirmed accounts authored something — a post, reply or repost — in the last 90 days (16.750 across Europe). Reading is invisible on the AT Protocol, so this is a floor on engagement: the real, active community is larger. A low share (Spain, Austria) is also a sign the country's domain is mostly word-play rather than people.
By country
European Union
| Country | Confirmed | Active 90d | Estimate | Survey* | Community |
|---|---|---|---|---|---|
| Germany | 7.081 | 2.494 35% | ~950.500 | ~2.800.000 | atproto.berlin, frankfurt.atmosphere.community |
| France | 5.514 | 3.052 55% | ~670.930 | · | atproto.fr |
| Netherlands | 3.488 | 1.642 47% | ~230.000 | · | atproto.nl |
| Belgium | 2.236 | 1.064 48% | ~137.838 | · | atproto.be |
| Denmark | 917 | 311 34% | ~42.667 | · | none yet |
| Finland | 774 | 286 37% | ~78.555 | · | none yet |
| Poland | 525 | 152 29% | ~75.646 | · | atproto.pl |
| Czechia | 501 | 207 41% | ~47.884 | · | atproto.cz |
| Ireland | 464 | 214 46% | · | · | none yet |
| Romania | 325 | 45 14% | ~5.901 | · | none yet |
| Slovenia | 251 | 62 25% | ~5.900 | · | none yet |
| Portugal | 235 | 75 32% | ~235 | · | atproto.pt |
| Estonia | 233 | 67 29% | ~4.099 | · | none yet |
| Spain | 200 ⚠ | 1.321 98% | ~85.459 | · | atproto.es |
| Hungary | 176 | 59 34% | ~20.514 | · | atproto.hu |
| Latvia | 176 | 60 34% | ~3.913 | · | none yet |
| Greece | 134 | 39 29% | ~26.227 | · | none yet |
| Slovakia | 102 | 37 36% | ~9.482 | · | none yet |
| Luxembourg | 100 | 33 33% | ~7.663 | · | none yet |
| Lithuania | 81 | 15 19% | ~1.118 | · | none yet |
| Austria | 38 ⚠ | 477 99% | ~100.641 | · | atproto.wien |
| Sweden | 36 ⚠ | 341 94% | ~100.065 | · | none yet |
| Croatia | 18 | 4 22% | ~5.155 | · | none yet |
| Malta | 18 | 9 50% | ~62 | · | none yet |
| Italy | 15 ⚠ | 236 98% | ~157.336 | · | atproto.it |
| Bulgaria | 15 | 7 47% | ~4.534 | · | none yet |
| Cyprus | 12 | 4 33% | ~2.281 | · | none yet |
Also in Europe
| Country | Confirmed | Active 90d | Estimate | Survey* | Community |
|---|---|---|---|---|---|
| United Kingdom | 8.738 | 3.256 37% | · | · | none yet |
| Switzerland | 1.448 | 498 34% | ~92.921 | · | atproto.ch |
| Norway | 764 | 251 33% | ~61.237 | ~310.000 | atproto.no |
| Liechtenstein | 252 | 65 26% | ~252 | · | none yet |
| Ukraine | 123 | 34 28% | ~123 | · | none yet |
| Iceland | 1 ⚠ | 145 99% | ~3.230 | · | none yet |
Plus 967 accounts in 11 other European countries with only weak or very small signals (and non-EU states like Russia and Belarus), not listed here. They are still counted in the totals above.
Confirmed is the floor: accounts we can place in the country from a deliberate signal, each counted once. Estimate is our modelled, language-weighted total (same method as the aggregate above; a country page shows how). Survey* is an external, self-reported population estimate where a citable national one exists (Norway: Kantar/NRK; Germany: ARD/ZDF-Medienstudie). A survey measures reach, not accounts we can place, so it runs far higher than either of ours; each links to its source and method.
⚠ marks countries whose domain is widely registered for English word-play rather than as a
statement about the country (.es, .it, .at,
.se, .is). Those matches are counted but ranked low, so a country
can show a small number here and a much larger raw match count. Spain is the clearest case:
about 9.800 .es handles, almost none of them Spanish.
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 35.958 confirmed accounts, not every European account.
When these accounts were created
Where they run
8.190 accounts (15.4%) live on a PDS outside Bluesky's own hosting. This is the 53.151 confirmed accounts only — the European-infrastructure figure above counts all accounts on European PDSes, most of which have no country signal and do not appear here.
-
eurosky.social1.431 accounts -
pds.nightbo.at741 accounts -
forum-hietzing.at637 accounts -
peedee.es575 accounts -
bsx.admat.at491 accounts -
atproto.brid.gy229 accounts -
blacksky.app157 accounts -
pds.aiia.ro139 accounts -
pds.bowverse.fr120 accounts -
pds2.bsky.futureinternet.filab.uni-hannover.de101 accounts
Which apps they use, beyond Bluesky
3.044 accounts (8%) of the 35.958 use something other than Bluesky. When they do, this is what:
Accounts holding records from that app in their repo, counted once per app. Bluesky's own collections are left out. This only sees apps that write their own records: a read-only client leaves nothing in a repo and cannot appear here.
By record type
sh.tangled.actor.profile616 accountssite.standard.publication609 accountsblue.flashes.actor.profile600 accountssite.standard.document427 accountsnet.anisota.beta.game.session371 accountsnet.anisota.beta.game.log370 accountsid.sifa.profile.self329 accountsblue.flashes.feed.post328 accountssh.tangled.publicKey304 accountssh.tangled.graph.follow301 accountscom.bsky38.influential.vote300 accountssocial.mu.newsFeedPrefs297 accountssh.tangled.repo289 accountsid.sifa.profile.position286 accountssocial.pinksky.app.preference285 accountsid.sifa.profile.skill278 accountssh.tangled.feed.star276 accountsid.sifa.profile.language260 accountsid.sifa.profile.education254 accountssite.standard.graph.subscription228 accountsplace.stream.chat.profile227 accountsid.sifa.profile.externalAccount221 accountsid.sifa.graph.follow183 accountssocial.popfeed.actor.profile179 accountssocial.grain.actor.profile166 accountsid.sifa.profile.location151 accountsapp.blento.card142 accountssocial.popfeed.feed.list135 accountssocial.popfeed.feed.listItem133 accountscommunity.lexicon.calendar.rsvp132 accounts
Communities
Where a community already exists we link to it, so you can find your people. Some cover a whole country, others a single city.
Countries
- atproto.nl Netherlands
- atproto.be Belgium
- atproto.fr France
- atproto.no Norway
- atproto.hu Hungary
- atproto.it Italy
- atproto.ch Switzerland
- atproto.pl Poland
- atproto.es Spain
- atproto.pt Portugal
- atproto.cz Czechia
- belgium-atmosphe.re Belgium
Cities
- atproto.amsterdam Amsterdam, Netherlands
- atproto.brussels Brussels, Belgium
- atproto.berlin Berlin, Germany
- atproto.barcelona Barcelona, Spain
- lille.atproto.fr Lille, France
- frankfurt.atmosphere.community Frankfurt, Germany
- atproto.krakow.pl Kraków, Poland
- atproto.wien Vienna, Austria
Updated 2026-09-26. Method: one DID, one country, by signal precedence.