// 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//feed/). 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 = { 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; }