All projects
Solid Share app icon

Solid Share

Files, contacts, tickets and passes on your own Solid pod, shared on your terms — a data wallet for everyday people.

Jun 2025 – PresentFreelanceOngoing
Onboarding screen explaining Solid pods to a newcomer
Solid explained before any sign-in
The login screen listing pod providers and a custom server option
Pick a provider, or bring your own server
The home hub with Contacts and Wallet cards
The hub — your data, on your pod
The pod file browser in list view
The pod as a familiar file manager
A real bus ticket rendered as a wallet pass with issuer branding and QR code
A real ticket as a pass — issuer colours, scannable code
A share presented as a link with its QR code
Every share is a link and a QR code
Managing who can view, add or edit a shared resource
View / Add / Edit — widen, narrow or revoke inline
Contact sync settings between the pod and the device
Two-way contact sync with the device

Android Solid Services gave Android its native path to Solid — Solid Share is why I built that path. This is the app for people rather than developers: your pod as a personal data wallet in your pocket, with the familiar feel of a file manager and none of the protocol showing.

It is Solid through and through. Any pod provider signs in — SolidCommunity.net, Inrupt PodSpaces, or a server you run yourself — and everything the app writes is standard RDF on your pod: contacts in the vCard vocabulary, tickets registered in your Type Index so any other Solid app can find them. Leave Solid Share tomorrow and you lose nothing, because none of it ever belonged to the app.

I'm building it as NLnet-funded open source under NGI Mobifree, and it has no server of mine — the app talks to your pod directly, and nothing you store passes through me. v0.4.3 shipped in August 2026, and it is published on F-Droid — the store listing itself lives in the repository, reviewed and versioned like the code, so what F-Droid shows is built and described straight from the tagged commit.

Accounts & login

  • Log in with any Solid pod provider — SolidCommunity.net, Inrupt PodSpaces, Data Pod, or any custom OIDC issuer URL
  • Stay signed into several pods at once and switch the active account in a tap
  • Previously used WebIDs are remembered for one-tap re-authentication
  • Secure OpenID Connect sign-in via AppAuth, kept out of the app's UI layer

Files & storage

  • Browse your pod's containers and resources in a sortable list or grid, with file-type-aware icons
  • Upload files from device storage, or capture a photo or video and send it straight to your pod
  • Download resources to your device and open them with any compatible app
  • Uploads and downloads run as background workers with progress notifications

Sharing & access control

  • Share any file or folder with a specific person by WebID, or with anyone holding the link
  • Every share produces a branded QR code and a copyable link that opens the app through verified HTTPS App Links
  • Clear View / Add / Edit access levels instead of raw Read / Append / Write
  • "Shared by me" and "Shared with me" lists, with inline widen / narrow / revoke and access requests
  • Works across major Solid servers — Web Access Control by default, with an Access Control Policy fallback (including Inrupt ESS)

Data modules

  • Contacts — two-way sync between your pod and the Android contacts ecosystem, with duplicate review before anything merges
  • Wallet — event tickets, boarding passes, loyalty cards and coupons as ordinary Solid resources you own, registered in your type index so any Solid app can find them
  • Apple Wallet import with nothing dropped — a .pkpass or .pkpasses bundle is read in full, and five Apple-parity layouts render the issuer's own colours and artwork
  • Barcodes re-rendered byte-faithfully in the issuer's symbology, so gate scanners read the identical code — IATA boarding-pass barcodes decoded for their details
  • An in-app inbox surfaces share offers, accepts, access changes, and requests, kept current by a background polling worker

Under the hood

  • Clean Architecture with MVVM in a single module, and a Jetpack Compose UI in Material 3
  • Type-safe Navigation Compose, Hilt for dependency injection, DataStore, Kotlin Coroutines / Flow, and WorkManager
  • All Solid communication — authentication, resource management, WAC / ACP sharing, and notifications — runs through the Android Solid Services SDK
  • QR generation with ZXing; QR and barcode scanning with CameraX and ML Kit
  • A release cannot ship without its changelog — the release workflow fails when the tag's changelog is missing or over the store limit
  • Open source under the MIT License
All projectsWork with meWritten from the repository, not the résumé.