Read model
One app page can come from multiple records
Atmosphere’s app directory is an appview projection. It reads AT Protocol records, normalizes them into one internal listing shape, and deduplicates records that describe the same app.
| Record | Role | How Atmosphere uses it |
|---|---|---|
community.lexicon.app.profile | Canonical app identity. | Name, description, icon, banner/media, links, status, platforms, lexicons, and app-owned metadata. |
fyi.atstore.listing.detail | Shared listing record. | Primary public listing source today. It connects to ATStore reviews, favorites, categories, and discovery signals. |
fyi.atstore.listing.review / favorite | Social signals. | Reviews, ratings, favorites, and trending inputs for apps with an ATStore listing URI. |
com.atmosphereaccount.registry.profile | Legacy compatibility. | Read as a fallback while old Atmosphere-only listings migrate. New listings should publish shared app records instead. |
When an app has records in more than one source, Atmosphere shows one app card and one detail page. Source details belong in owner/admin disclosure, not in the public card design.
Publishing direction
The practical path is to publish from the app account itself, then let appviews such as Atmosphere and ATStore index the same records.
Use the app account
Sign in with the account that represents the app. That account owns the app’s shared profile and listing records.
Add required listing fields
Provide a name, description, icon, homepage or app link, category/collection, and media where available.
Publish shared records
Atmosphere writes an ATStore listing record for discovery and a community app profile for canonical app identity when the app is ready.
Migrate legacy listings
Legacy Atmosphere-only listings should move to shared records. The old record can remain indexed as a fallback until the migration is complete.
A regular user leaving a review does not need an app or host profile record. Reviews use the signed-in Atmosphere account identity and, when needed, a minimal ATStore reviewer profile for display compatibility.
Merge and precedence rules
| Match key | Purpose |
|---|---|
| Product/profile DID | Strongest signal that multiple records belong to the same app account. |
| Canonical primary URL | Useful when a community profile and ATStore listing describe the same app from the same website. |
| Source AT URI | Fallback when no shared identity or URL exists. |
| Precedence | Display behavior |
|---|---|
| ATStore listing | Wins duplicate resolution today because it carries the shared review/favorite ecosystem. |
| Community app profile | Fills canonical identity and app metadata gaps. |
| Legacy Atmosphere profile | Fills remaining blanks only while older listings migrate. |
Reviews and favorites
If an app has an ATStore listing URI, Atmosphere routes reviews and favorites to ATStore-compatible records. If it does not, older Atmosphere review behavior is treated as legacy fallback until the app migrates.
ATStore-backed review aggregates and legacy Atmosphere review aggregates should not be blended into one public rating. Prefer the shared ATStore-backed signal once a listing exists.