Solid Share is developed and published by Erfan Gholami, an independent developer. For the limited data described in this policy that actually reaches us or our processors — essentially, diagnostics from the Google Play build and website request logs — Erfan Gholami is the data controller.
For the content you keep on your Solid Pod, you are in control: it is stored by the pod provider you chose, under your own account, and Solid Share is only the client application you use to work with it.
Contact for privacy questions and data requests: erfangholami76@gmail.com.
Solid Share is a client for Solid Pods. It is not a service that stores your data.
When you sign in, you authenticate directly with the pod provider you picked, using Solid-OIDC. From then on the app reads and writes resources on your pod: files, contacts, tickets, share records and notifications. Those requests go from your phone to your pod provider. They do not pass through any server operated by us, because no such server exists.
The domain solidshare.app serves only static files:
/.well-known/clientid.jsonld, which your pod
provider fetches during login so it can identify the app;
/.well-known/assetlinks.json;
Your pod provider has its own privacy policy and terms, which govern the data you store there. Please read them — that is where your content actually resides.
Solid Share ships in two forms. They contain the same features, but differ in one privacy respect: diagnostics.
| Build | Where you get it | Diagnostics |
|---|---|---|
| Google Play | Google Play Store | Firebase Crashlytics, Google Analytics for Firebase and Firebase Performance Monitoring, enabled by default — see §4.8 |
| FOSS | F-Droid, GitHub releases | None. The build contains no Firebase or Google Play Services code whatsoever; there is nothing to switch off |
If you would rather no diagnostics were collected at all, install the FOSS build. Both builds are produced from the same public source code at github.com/erfangholami/SolidShare, which is MIT-licensed, so every claim in this policy can be checked against the code.
Signing in opens your pod provider's own login page in a browser tab. Solid Share never sees, handles or stores your password. Once you approve, the app receives and keeps on your device:
Tokens and the key pair are stored encrypted on your device, with the encryption key held in the Android Keystore, and are sent only to your pod provider and your pod. You can sign in with several accounts; each account's data is kept separate on the device, and signing an account out erases its local data.
The app uploads to your pod only what you explicitly choose: a file picked through Android's document picker, an image or video picked through Android's photo picker, or a photo or video you take in the moment with the camera. Downloads are written to the location you select.
Solid Share does not request broad access to your photo library or to all files on the device, and it does not scan your storage. It sees only what you hand it.
To make browsing work offline, the app keeps a local copy of file metadata — names, sizes, types, timestamps, pod addresses — and of changes you made while offline, until they can be sent to your pod. This cache is encrypted (see §12).
Contacts are a feature you turn on, and they only ever move between your device and your pod. Nothing is sent to us or to any third party. Two directions exist, both requiring the Contacts permission:
You can also import and export contacts as vCard (.vcf) files through Android's
file picker; the app reads or writes only the file you select.
The contact fields handled are the ordinary ones — names, phone numbers, email addresses, postal addresses, organisations, notes, photos, WebIDs and similar — and they are written to your pod and cached, encrypted, on your device.
Because contacts describe other people, please remember that uploading them to your pod makes you responsible for that data under applicable law, and that your pod provider will store it. If you do not want that, do not enable contacts: nothing else in the app depends on it.
Tickets you add — by scanning a barcode, filling in the form, or importing an Apple Wallet
.pkpass file — are stored on your pod, together with the original pass file when
there is one. Barcodes are decoded entirely on your device with a free-software decoder; no
camera image ever leaves the phone.
Pass updates. If an imported pass declares an issuer update service, the app asks that issuer — the airline, transport operator or venue that produced the pass, not us — for an updated copy roughly every twelve hours. That request carries the pass identifiers and the pass's own authentication token, both of which were inside the file the issuer gave you. As with any web request, the issuer can see your IP address and that the pass is still in use. Deleting the ticket stops the requests.
When you share something, the app, acting as you and on your pod:
The recipient — and their pod provider — necessarily learn your WebID and what you shared. That is the point of sharing, but it is worth stating plainly.
Roughly every fifteen minutes, the app checks your own pod's inbox for incoming share notifications so it can show them to you. That check goes to your pod, nowhere else.
A share link looks like
https://solidshare.app/s?resource=…&owner=…&type=…. Anyone holding the
link can read those values, so treat a share link as sensitive and send it only to the person
it is meant for.
When the link is opened on a device with Solid Share installed, Android hands it straight to
the app and nothing is requested from the network. If it is opened in a web browser instead —
for example on a computer, or on a phone without the app — then, as with any web address, the
full link including its parameters is sent to the server hosting solidshare.app
and may appear in that host's standard request logs (see §15). We do
not read, analyse or build profiles from those logs.
Ticket links (https://solidshare.app/t#…) keep their payload after the
#, which browsers never transmit to the server.
Notifications are generated locally on your device — new shares, sync results, import and export progress. Solid Share uses no push messaging service, so no third party is involved in delivering them. Import and export run as foreground data-sync jobs so Android does not interrupt them; the notification you see is what that requires.
The Google Play build includes Firebase Crashlytics, Google Analytics for Firebase and Firebase Performance Monitoring, so that crashes and failures can be found and fixed. They are active in released Play builds and collect:
What is deliberately kept out of these reports:
scheme://host); the path of
a resource, which in Solid identifies both you and the thing itself, is stripped before
anything is reported.
Google processes this data on our behalf as a processor. See Firebase's privacy documentation and the Google Privacy Policy. Google deletes Crashlytics reports after 90 days; analytics event data is deleted by Google at the end of the retention window configured for the project, which is at most 14 months.
If you want none of this: install the FOSS build from F-Droid or GitHub. It contains no Firebase code, so nothing is collected or transmitted.
The app keeps, on the device only: the encrypted offline cache described above, your settings, sign-in state and tokens, imported pass files, and the queue of changes waiting to reach your pod. Android's own backup feature may include app data in the backup of your device if you have that turned on in your Android settings; that backup goes to your Google account, not to us, and is governed by Google's terms. You can exclude Solid Share in Android's backup settings.
Every permission below is requested at the moment the feature needs it, with an explanation, and can be withdrawn at any time in Android's settings.
| Permission | Why the app asks | If you refuse |
|---|---|---|
CAMERA |
Scanning share, profile and ticket QR codes and barcodes, and taking a photo or video to upload to your pod. Frames are analysed in memory on the device | Scanning and in-app capture are unavailable; everything else works |
READ_CONTACTS, WRITE_CONTACTS |
Showing your pod contacts in the phone's Contacts app, sending edits back to your pod, and the one-time import of device contacts into your pod (§4.3) | The contacts feature stays off. Files, sharing, tickets and notifications are unaffected |
POST_NOTIFICATIONS |
Showing local notifications about shares, sync and import/export progress | The app works silently; nothing else changes |
READ_SYNC_SETTINGS, WRITE_SYNC_SETTINGS
|
Registering the contacts sync with Android's account and sync framework | Automatic contacts sync does not run |
FOREGROUND_SERVICE, FOREGROUND_SERVICE_DATA_SYNC
|
Keeping contact imports and exports running to completion instead of being killed mid-way | Granted at install time; no runtime prompt |
INTERNET, ACCESS_NETWORK_STATE |
Talking to your pod, and detecting whether you are offline so the app can queue changes instead of failing | Granted at install time; no runtime prompt |
WRITE_EXTERNAL_STORAGE (Android 9 and older only)
|
Saving downloaded files on older Android versions, which had no other mechanism | Downloads cannot be saved on those versions |
The app requests no location, microphone, SMS, call-log, calendar, health, "all files access" or broad media permissions.
| Recipient | What they receive | Why |
|---|---|---|
| Your Solid Pod provider (you choose it) | Everything you store through the app — files, contacts, tickets, share records — plus your sign-in requests and your IP address | It is your storage. Governed by that provider's own privacy policy and terms |
| People you share with | The resource you shared, your WebID, and a notification in their pod's inbox | You asked the app to share it |
| Pass issuers (airline, venue, operator) | Only if you import a pass with an update service: the pass identifiers and its own token, plus your IP address, about every 12 hours | To keep a gate change or seat number current (§4.4) |
| Google — Play build only | The crash and usage diagnostics listed in §4.8 | Crash reporting and quality measurement, as our processor. Not present in the FOSS build |
| Google Play | Installation, update and (if you report one) crash data that the Play Store itself collects | A consequence of distributing through the store; governed by Google's own policies |
| Cloudflare |
Standard web request logs for solidshare.app, including IP address, when
a page or link on that domain is opened in a browser
|
Hosting and delivering this website (§15) |
There is no other recipient. We do not use advertising networks, attribution SDKs, marketing platforms, customer-data platforms or data brokers, and we do not disclose data to anyone for their own purposes. If we were ever legally compelled to disclose something, we could only hand over what we actually hold — which is the diagnostics and log data described above, and nothing from your pod.
Where the GDPR applies, we rely on:
For the content you place on your pod, the pod provider processes it under the agreement between you and them.
| Data | Kept |
|---|---|
| Everything on your pod | Until you delete it. Your pod provider's retention terms apply |
| Local cache, queued changes, imported pass files | Until you sign that account out, clear the app's storage, or uninstall the app |
| Sign-in tokens | Until they expire, or you sign out — whichever comes first |
| Contacts mirrored into the phone's Contacts app | Until you sign out or remove the Solid Share account on the device |
| Crash reports (Play build) | Deleted by Google after 90 days |
| Analytics events (Play build) | Deleted by Google at the end of the configured window, at most 14 months |
| Website request logs | Short-lived logs held by our hosting provider, Cloudflare |
Solid Share creates no account on any system we operate, so there is no account with us to delete. Your Solid identity belongs to your pod provider; closing it is done with them.
To remove data:
Subject to your local law, you have the right to access, correct, erase, restrict, object to and receive a portable copy of your personal data, and to lodge a complaint with a data protection authority.
In practice, most of these you exercise yourself and immediately: the data is on your pod, under your identity, and Solid Share reads, edits, exports (contacts to vCard) and deletes it on your instruction. No request to us is needed, and we could not act on your pod on your behalf even if you asked.
For anything we do hold — the diagnostics and website logs — write to erfangholami76@gmail.com. We answer within 30 days. If you are in the EU/EEA or the UK and you are not satisfied, you may complain to the data protection authority of the country where you live or work.
No system is perfectly secure. Because we hold no copy of your data, a breach of ours could not expose it — but the security of your pod and your device also matters, so please keep both protected.
Solid Share is a general-audience tool and is not directed to children. It is not designed for, marketed to, or intended to be used by children under 13 (or the higher age of digital consent in your country, which is up to 16 in parts of the EU). We do not knowingly collect personal data from children. If you believe a child has provided data to us, write to erfangholami76@gmail.com and we will delete it.
The processors named in this policy — Google (diagnostics, Play build) and Cloudflare (website hosting) — operate globally and may process data outside your country, including in the United States. Both offer transfer mechanisms recognised under EU law, including the European Commission's Standard Contractual Clauses, and both are certified under the EU-U.S. Data Privacy Framework.
Where your pod data physically lives is determined by the pod provider you chose, not by us.
solidshare.app, and there is no
analytics, tag manager or tracking pixel on it.
If the app's data handling changes, this page changes with it, and the date at the top is updated. Material changes will also be noted in the release notes of the version that introduces them, so you can see what changed and when. Because the page is served from a public git repository, its full history is auditable.
Privacy questions, data requests and security reports: erfangholami76@gmail.com
Bugs and feature requests: the GitHub issue tracker
Controller: Erfan Gholami, independent developer, publisher of Solid Share.