interactive intro to open social at-me.zzstoatzz.io
25
fork

Configure Feed

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

show discover CTA every visit for bsky-only users, make ghost apps clickable

- remove localStorage persistence for discover callout — it shows
every time for users with only bluesky, dismissable per session
- ghost app circles are now links that navigate to the app

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+7 -4
+6
src/view/layout.css
··· 229 229 color: var(--text-light); 230 230 } 231 231 232 + a.ghost-app-link { 233 + text-decoration: none; 234 + color: inherit; 235 + cursor: pointer; 236 + } 237 + 232 238 .ghost-app-description { 233 239 position: absolute; 234 240 top: calc(100% + 1.5rem);
+1 -4
src/view/visualization.js
··· 139 139 div.style.top = `${y}px`; 140 140 141 141 div.innerHTML = ` 142 - <div class="app-circle" data-namespace="${suggestion.namespace}" style="width: ${circleSize}px; height: ${circleSize}px; font-size: ${circleSize * 0.4}px;">${suggestion.letter}</div> 142 + <a href="${suggestion.url}" target="_blank" rel="noopener noreferrer" class="app-circle ghost-app-link" data-namespace="${suggestion.namespace}" style="width: ${circleSize}px; height: ${circleSize}px; font-size: ${circleSize * 0.4}px;">${suggestion.letter}</a> 143 143 <a href="${suggestion.url}" target="_blank" rel="noopener noreferrer" class="app-name">${suggestion.name} &#8599;</a> 144 144 <span class="ghost-app-description">${suggestion.description}</span> 145 145 `; ··· 320 320 const DISCOVER_KEY = 'atme_discover_dismissed'; 321 321 322 322 function showDiscoverCallout(field) { 323 - if (localStorage.getItem(DISCOVER_KEY)) return; 324 - 325 323 const callout = document.createElement('div'); 326 324 callout.className = 'discover-callout'; 327 325 callout.innerHTML = ` ··· 345 343 document.getElementById('discoverDismiss').addEventListener('click', () => { 346 344 callout.classList.remove('visible'); 347 345 setTimeout(() => callout.remove(), 300); 348 - localStorage.setItem(DISCOVER_KEY, 'true'); 349 346 }); 350 347 } 351 348