Read model
One app page can come from multiple records
This 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 this site 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. |
site.standard.publication / document | Interoperable product updates. | What's New posts shared with ATStore and other Standard.site consumers. |
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, this site 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 this directory, ATStore, and other appviews 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
This site writes an ATStore listing record for discovery and a community app profile for canonical app identity when the app is ready.
Publish product updates
What's New creates one Standard.site publication for the app page, then a Standard.site document for each update. Existing legacy Atmosphere update records remain visible but read-only.
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.
Each appview indexes and moderates shared records independently. A record can be live in Atmosphere while another directory is still processing or reviewing it, so protocol compatibility does not guarantee immediate visibility everywhere.
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, this site routes reviews and favorites to ATStore-compatible records. If it does not, the site's older 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.