Something went wrong. Try again.
Central platform for European atproto.<cc> country community websites atproto.eu
community atproto
Something went wrong. Try again.
TypeScript
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194// National AT Protocol communities that already exist, run by other people.//// atproto.eu is a directory first and a site second. Where a country already has a community,// we link to it and get out of the way; building a competing one would fragment a small// ecosystem and duplicate volunteers who are already doing the work.//// Checked 2026-09-02 across every European atproto.<cctld>: only .fr was a real national// community. .at is a developer tool using the domain as a pun, .es is parked and for sale,// .de sits on a drop-catch service, and the rest do not resolve.//// The ccTLD sweep missed city domains entirely, which is how atproto.amsterdam and// atproto.barcelona were nearly overlooked. Check <city>.tld too before declaring a country// empty -- a country with no national site may still have an active local one.
export interface Community { /** ISO 3166-1 alpha-2, lowercase. */ country: string; /** A city community covers one city, not the country. Saying atproto.barcelona is "the * community for Spain" would misrepresent both it and Spain, so the directory keeps the * distinction visible and never lets a city stand in for a nation. */ scope: 'national' | 'city'; /** City name, for city-scoped communities. */ city?: string; name: string; url: string; /** What it actually offers, in its own terms. Kept short and factual — this is a link, not * a review, and we do not speak for them. */ note: string; /** Communities we run ourselves, so the directory can distinguish "ours" from "theirs". */ ours?: boolean;}
export const existingCommunities: Community[] = [ { country: 'nl', scope: 'national', name: 'atproto.nl', url: 'https://atproto.nl', note: 'Members, events and a directory for the AT Protocol community in the Netherlands.', ours: true, }, { country: 'be', scope: 'national', name: 'atproto.be', url: 'https://atproto.be', note: 'Members, events and a directory for the AT Protocol community in Belgium.', ours: true, }, { country: 'fr', scope: 'national', name: 'atproto.fr', url: 'https://atproto.fr', note: 'French-language articles, a protocol wiki, a Matrix channel and meetups in Paris.', }, { country: 'no', scope: 'national', name: 'atproto.no', url: 'https://atproto.no', note: 'The AT Protocol community for Norway.', ours: true, }, { country: 'hu', scope: 'national', name: 'atproto.hu', url: 'https://atproto.hu', note: 'Members, events and a directory for the AT Protocol community in Hungary.', ours: true, }, { country: 'it', scope: 'national', name: 'atproto.it', url: 'https://atproto.it', note: 'Members, events and a directory for the AT Protocol community in Italy.', ours: true, }, { country: 'ch', scope: 'national', name: 'atproto.ch', url: 'https://atproto.ch', note: 'Members, events and a directory for the AT Protocol community in Switzerland.', ours: true, }, { country: 'pl', scope: 'national', name: 'atproto.pl', url: 'https://atproto.pl', note: 'Members, events and a directory for the AT Protocol community in Poland.', ours: true, }, { country: 'es', scope: 'national', name: 'atproto.es', url: 'https://atproto.es', note: 'Members, events and a directory for the AT Protocol community in Spain.', ours: true, }, { country: 'pt', scope: 'national', name: 'atproto.pt', url: 'https://atproto.pt', note: 'Members, events and a directory for the AT Protocol community in Portugal.', ours: true, }, { country: 'cz', scope: 'national', name: 'atproto.cz', url: 'https://atproto.cz', note: 'Members, events and a directory for the AT Protocol community in Czechia.', ours: true, }, { country: 'be', scope: 'national', name: 'belgium-atmosphe.re', url: 'https://belgium-atmosphe.re/', note: 'AT Protocol community for Belgium.', }, { country: 'nl', scope: 'city', city: 'Amsterdam', name: 'atproto.amsterdam', url: 'https://atproto.amsterdam', note: 'Local meetups for the AT Protocol community in Amsterdam. Open to pull requests.', }, { country: 'be', scope: 'city', city: 'Brussels', name: 'atproto.brussels', url: 'https://mu.social/profile/atproto.brussels', note: 'Local AT Protocol community in Brussels (no website yet; links to its profile).', }, { country: 'de', scope: 'city', city: 'Berlin', name: 'atproto.berlin', url: 'https://atproto.berlin', note: 'Local AT Protocol community in Berlin.', }, { country: 'es', scope: 'city', city: 'Barcelona', name: 'atproto.barcelona', url: 'https://atproto.barcelona', note: 'Meetups and gatherings for AT Protocol people in Barcelona, started by @didiermortier.eu.', ours: true, }, { country: 'fr', scope: 'city', city: 'Lille', name: 'lille.atproto.fr', url: 'https://lille.atproto.fr', note: 'Local AT Protocol community in Lille.', }, { country: 'de', scope: 'city', city: 'Frankfurt', name: 'frankfurt.atmosphere.community', url: 'https://mu.social/profile/frankfurt.atmosphere.community', note: 'Local AT Protocol community in Frankfurt (no website yet; links to its profile).', }, { country: 'pl', scope: 'city', city: 'Kraków', name: 'atproto.krakow.pl', url: 'https://mu.social/profile/atproto.krakow.pl', note: 'Local AT Protocol community in Kraków (no website yet; links to its profile).', }, { country: 'at', scope: 'city', city: 'Vienna', name: 'atproto.wien', url: 'https://mu.social/profile/atproto.wien', note: 'Local AT Protocol community in Vienna (no website yet; links to its profile).', },];