[READ-ONLY] Mirror of https://github.com/flo-bit/atmo-garden. atmo.garden
0

Configure Feed

Select the types of activity you want to include in your feed.

switch placeholder post again

+27 -6
+26 -5
scripts/create-placeholder-post.ts
··· 61 61 } 62 62 63 63 // --------------------------------------------------------------------------- 64 - // Post content + richtext facet for the https://atmo.garden link 64 + // Post content + embed (atmo.garden communities list) 65 65 // --------------------------------------------------------------------------- 66 66 67 67 // Text shown as the ONE AND ONLY entry in `following-hot` / 68 68 // `following-new` when the viewer follows zero atmo.garden 69 - // communities. Needs to carry the full explanation on its own 70 - // (no fallback feed content behind it anymore), so leads with 71 - // the problem, then the fix, then the link. 69 + // communities. Leads with the problem, then directs readers at 70 + // the embedded list (which bsky renders as a tappable card that 71 + // lets them follow individual communities from inside the client), 72 + // then links to the website as a secondary CTA. 72 73 const POST_TEXT = 73 - '👋 Your atmo.garden following feed is empty!\n\natmo.garden is a experimental community layer for surfacing bsky posts. Follow community accounts to see their posts in this feed.\n\nDiscover communities → https://atmo.garden'; 74 + '🌱 Your atmo.garden following feed is empty!\n\nFollow atmo.garden community accounts below to populate it — tap the list to see all communities and follow any from inside bsky.\n\nLearn more → https://atmo.garden'; 75 + 76 + // Embedded bsky list — the "atmo.garden communities" public list 77 + // published by the atmo.garden account. When bsky's appview 78 + // hydrates this post for a feed viewer, it renders the list as a 79 + // tappable card showing the list name, description, and member 80 + // preview. Tapping opens the list in the user's bsky client, 81 + // where they can follow any individual community in one tap. 82 + // If the list ever gets rewritten (rkey change, new CID after an 83 + // update), the at-uri + cid below need to be updated and the 84 + // script re-run. 85 + const LIST_URI = 86 + 'at://did:plc:tl7hmwtzr2lriwkddcqly4wv/app.bsky.graph.list/3mj2xb5hpp74n'; 87 + const LIST_CID = 'bafyreiafekmlk2dnghd3l7mir3wm4w4bucxxjvjvuipwwwn3jnwyqkgc4a'; 74 88 75 89 /** Find the UTF-8 byte range of `substring` inside `text`, or null. */ 76 90 function byteRange( ··· 142 156 $type: 'app.bsky.feed.post', 143 157 text: POST_TEXT, 144 158 facets, 159 + embed: { 160 + $type: 'app.bsky.embed.record', 161 + record: { 162 + uri: LIST_URI, 163 + cid: LIST_CID 164 + } 165 + }, 145 166 createdAt: new Date().toISOString() 146 167 } 147 168 })
+1 -1
wrangler.jsonc
··· 20 20 // Created once via `pnpm tsx scripts/create-placeholder-post.ts` 21 21 // and pasted here. Empty string disables the placeholder (feed 22 22 // falls back directly to the all-<sort> contents). 23 - "FOLLOWING_FEED_PLACEHOLDER_URI": "at://did:plc:tl7hmwtzr2lriwkddcqly4wv/app.bsky.feed.post/3mjb7kf32jv2x" 23 + "FOLLOWING_FEED_PLACEHOLDER_URI": "at://did:plc:tl7hmwtzr2lriwkddcqly4wv/app.bsky.feed.post/3mjb7x43s3t25" 24 24 }, 25 25 "kv_namespaces": [ 26 26 {