Lexicons and integrations
The open schemas that define what each record type contains, and the apps that already read or write Sifa's lexicons.
A lexicon is the schema for one type of Atmosphere record. In machine-readable form it says that an id.sifa.profile.position record must carry a title and a companyName, and may carry a startDate. Any app on the network uses lexicons to decide whether the data it receives is well-formed.
Why lexicons matter
Lexicons are the contract between apps. When Sifa ID publishes the id.sifa.profile.position lexicon, it promises one thing: every record in that collection looks like this. Other apps read those records with confidence and build features on them. They ask Sifa for no permission.
That is the part that makes an open network actually open. Without published schemas, each app would reverse-engineer the data of the others, and a single renamed field would break everything. With lexicons, every change carries a version, a public record, and a signpost.
Where Sifa's lexicons live
All Sifa schemas live in singi-labs/sifa-lexicons, an MIT-licensed public repo. Each schema is a JSON file. It names the field types, the mandatory fields, the validation constraints, and a human-readable description.
The namespace is id.sifa.*. Published today:
id.sifa.profile.selfand 12 sub-types covering positions, education, skills, certifications, projects, volunteering, publications, courses, honors, languages, external accounts, and the user's location.id.sifa.project.*: projects with multiple contributors.id.sifa.endorsement: peer endorsements based on real-world interactions.id.sifa.graph.followandid.sifa.graph.connection: the Sifa-specific follow / connection graph.id.sifa.auth*: auth flows for Sifa's meet feature.id.sifa.meeting: meeting records from the handshake / meet flow.
The exact list and schema details are in the repo. We do not restate them here because the repo is the source of truth.
Apps that already use Sifa lexicons
Because the schemas are public, any Atmosphere app can read or write them. Today:
- Sifa itself: the primary writer. Everything in your profile editor produces
id.sifa.*records. - verak.app: writes
id.sifa.*endorsement and profile records alongside its own reputation data. - weareonhire.com: writes
id.sifa.*profile records as part of its hiring workflow.
We expect more over time. If you build something that reads or writes id.sifa.* records, open an issue and we will add it here.
Personal sites driven by a Sifa profile
Beyond apps, some people render their own website from their id.sifa.* records, so a personal CV or career page stays in sync with their profile:
If you want the same, @singi-labs/sifa-page-renderer (MIT) turns a Sifa profile into a static site. See Personal website for the hosted option.
What Sifa reads (and what it does not)
To build your activity stream (/activity and /now), Sifa reads the public records across your PDS, not a fixed set of lexicons. Whatever public records your apps write can show up on your timeline. As examples of what that includes today:
app.bsky.*: Bluesky posts, follows, reposts, and profile data.forum.barazo.*: Barazo forum posts and reactions relevant to a profile.sh.tangled.*: Tangled repos, issues, and pull requests.rsvp.atmo.*andcommunity.lexicon.calendar.*: calendar events and RSVPs, e.g. atmo.rsvp.- Blog posts and long-form writing, e.g. WhiteWind, Leaflet, and Standard.site (see Standard.site cards).
community.lexicon.location.*: shared community location records.
New Atmosphere apps show up on their own as people start using them. @singi-labs/sifa-sdk/tokens catalogues every record type that Sifa treats as activity. The Activity feed page renders that list live.
You choose what shows
Reading a record and showing it on your profile are separate choices. Your activity settings turn any app or record type on and off. You decide which apps and lexicons appear on your profile and in your activity stream.
Only your public data
Sifa reads only the public records in your PDS, the same ones any Atmosphere app can already see. It has no access to private or permissioned data: not your Bluesky DMs, and nothing behind a permission you have not granted. If a record is not public, Sifa does not see it.
Want to go deeper
- Your data on a provider: how lexicons connect to actual stored records.
- Apps, AppViews, and the firehose: how an app turns raw records into a rendered page.
- What is the Atmosphere?: the bigger picture.