Skip to main content
Sifa Docs

Your data on a provider

What "your account stores it" means in practice. Where your Sifa records actually live, how to inspect them, and what happens if you delete an app.

When this site says "your data lives on your provider, not in Sifa ID's database", it is a literal description of how the system works. This page makes it concrete.

Records: the unit of storage

Everything on the Atmosphere is a record. A post is a record. A follow is a record. A Sifa profile entry (your current job, your education, an endorsement) is a record. Each one is a small JSON object stored on your provider.

Records have three coordinates:

  1. Your DID: whose account they belong to.
  2. A collection: what type of record it is (app.bsky.feed.post, id.sifa.profile.position, etc.).
  3. An rkey: a unique key within the collection (something like 3lc4apsq2nx2k).

Combined, they form an AT URI:

at://did:plc:abc123/id.sifa.profile.position/3lc4apsq2nx2k

That URI is the canonical address of one particular record on the network. Any Atmosphere app can fetch it directly from your provider. No Sifa involved.

Blobs: the other primitive

Records are the unit of structured data. Blobs are the unit of unstructured data: images, files, and anything else that does not fit in a JSON object. Upload a profile photo, attach an image, or set a Standard.site icon. The bytes then go to your provider as a blob. The record that names those bytes holds only a content-addressed pointer.

Two things follow from that:

  • The hash of the content identifies a blob. The same image twice produces the same identifier. A new record can point at an existing blob, and you upload nothing again.
  • Blobs live on your provider alongside your records. When you move providers, both move together. When you delete a record that referenced a blob, the blob is eventually garbage-collected (different providers do this on different schedules).

Most Sifa records do not have blobs. Profile photos are the obvious exception. The Standard.site cards page shows a working example that fetches a blob from your account and reuses it.

Where Sifa's records live in your account

When you fill in your Sifa profile, you create records in the id.sifa.* collections:

CollectionWhat it stores
id.sifa.profile.selfThe main profile entry (name, headline, bio)
id.sifa.profile.positionEach job you held
id.sifa.profile.educationEach school
id.sifa.profile.skillEach skill
id.sifa.profile.certificationEach certification
id.sifa.profile.projectEach project
id.sifa.profile.volunteeringEach volunteering role
id.sifa.profile.publicationEach publication
id.sifa.profile.courseEach course
id.sifa.profile.honorEach honor or award
id.sifa.profile.languageEach language
id.sifa.profile.externalAccountEach external account (blog, GitHub, etc.)
id.sifa.endorsementEach endorsement given or received

One record per item. One job equals one record. Edit the job on Sifa and the record on your provider updates. Delete the job and the record disappears.

Inspecting your own records

You can look at your records directly, and you can skip Sifa entirely. Two ways:

Browser: pdsls.dev is a public viewer for any Atmosphere account. Enter your username, browse collections, see the raw JSON.

Command line: call your provider's HTTP API. To list all Sifa positions on your account:

curl -s "https://bsky.social/xrpc/com.atproto.repo.listRecords?repo=<your-username>&collection=id.sifa.profile.position" | jq .

(Swap bsky.social for your provider's hostname if you are not on Bluesky.)

The JSON you see is exactly what Sifa reads. No secret fields, no parallel copy.

What happens if Sifa shuts down

Your records do not go anywhere. They live on your provider.

If Sifa shuts down tomorrow:

  • Your id.sifa.profile.* records stay readable on your provider.
  • The sifa.id AppView (the index + web app) goes dark, so docs.sifa.id and profile pages stop loading.
  • Any other Atmosphere app that wants to read the same records can. The data is open.
  • Your career history is not held hostage by us.

What happens if you delete Sifa

If you decide to leave Sifa but stay on the Atmosphere, delete your id.sifa.* records from your provider. Two ways:

  • From Sifa: go to Settings -> Account. Then scroll to Danger Zone. Reset Profile clears your Sifa profile data and opens the import page, so you can start again. The Delete Account control clears the profile data and your Sifa settings, then signs you out. Both offer to remove the matching id.sifa.* records from your data server. Sifa then walks every collection and deletes each record.
  • From outside Sifa: any tool that talks to AT Protocol's com.atproto.repo.deleteRecord endpoint can delete records directly. pdsls.dev does it in the browser. The goat CLI does it from the terminal.

Either way, Sifa's AppView sees the deletions on the firehose within seconds and removes them from its index. Your profile page becomes empty (or 404, if you also delete id.sifa.profile.self).

Sifa leaves every other collection alone: your Bluesky posts, your Tangled repos, and the rest. Sifa owns only the id.sifa.* namespace.

What happens if you move providers

Your records come with you. The migration process exports every record from your old provider, including every id.sifa.* record, and writes them to the new provider. Your DID stays the same. Only the provider hostname inside the AT URIs changes. The AppView still reads them by your DID, and the profile still works.

See Move your account to another provider for the step-by-step.

Want to go deeper

On this page