Skip to content

Build with it

One page per capability. Each opens with what you can build and the code to build it, and keeps the pod-level detail folded away at the bottom for when something surprises you.

Every page shows its code under Client and API tabs. Pick one and the whole site follows — see Client or API? if you have not chosen yet.

  • Sign in & accounts


    Getting a WebID to call with, staying signed in, and handling several accounts on one device.

  • Resources & containers


    Read, write, patch, list, copy and stream. The verbs everything else is built on.

  • Contacts


    Address books, contacts and groups as vCard RDF — interoperable with other Solid contact apps.

  • Tickets


    A wallet on the pod: passes, their artifacts and images.

  • Sharing


    Give someone access to a resource, track what you have given and received, share by link.

  • Notifications


    The Linked Data Notifications inbox — offers, withdrawals and access requests.

  • Access control


    What WAC and ACP actually enforce, and which one your pod server speaks.

  • Type index


    How data is found on a pod by type instead of by path.

  • Telemetry


    The pluggable sink, what is reported, and what never is.

Two things that apply everywhere

Every call takes a webId first. A device can hold several signed-in Solid identities at once, so the WebID chooses which session signs the request. Keep the one you got at sign-in.

Wait for the connection on the client path. Each client exposes a Flow<Boolean> that emits true once its bound service is connected. Collect it before your first call, or you will race the binding.

resources.resourceServiceConnectionState().first { connected -> connected }

The api path has no such step — there is no service to bind to.

Not finding it here?