// 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.: 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 .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).', }, ];