Something went wrong. Try again.
Central platform for European atproto.<cc> country community websites atproto.eu
community atproto
Something went wrong. Try again.
TypeScript
12345678910111213141516171819202122232425262728// Per-scope homepage feed. Each national scope has its own attie.ai custom feed generator in// gui.do's repo (Dutch/Belgian/Norwegian Atmosphere): community members plus the wider atproto// conversation relevant to that country, off-topic noise filtered out. The .eu aggregate has its// own pan-European feed (European Atmosphere).const FEED_DID = 'did:plc:45uheisi25szrjvjurfpritx'; // gui.do (the feed generators live in this repo)
const uri = (rkey: string) => `at://${FEED_DID}/app.bsky.feed.generator/${rkey}`;// Subscribe deeplink on mu.social (same path shape as bsky.app: /profile/<handle>/feed/<rkey>).const subscribe = (rkey: string) => `https://mu.social/profile/gui.do/feed/${rkey}`;
export interface HomeFeed { uri: string; subscribe: string;}
// Keyed by scope cc. Add a scope here once its feed is published.const FEEDS: Record<string, HomeFeed> = { nl: { uri: uri('atproto-nl'), subscribe: subscribe('atproto-nl') }, be: { uri: uri('atproto-be'), subscribe: subscribe('atproto-be') }, no: { uri: uri('atproto-no'), subscribe: subscribe('atproto-no') }, eu: { uri: uri('atproto-eu'), subscribe: subscribe('atproto-eu') },};
/** The homepage feed for a scope, or null when it has none. */export function feedForScope(cc: string): HomeFeed | null { return FEEDS[cc] ?? null;}