Privacy Policy
The short version: your books, notes, progress and reading history stay on your device and are never uploaded to us. The parts of the app that do reach the internet — the optional account, the ads, and the store purchase — are listed below in full, along with what each one collects and who processes it.
We cannot see your library. Shelfgoal has no sync and no content server. Your books, notes, progress and reading history are written to a database on your own device and are never sent to us or to anyone else. What the sections below describe is everything else: an optional email account, advertising, and the one-time purchase.
1. Summary
| Question | Answer |
|---|---|
| Are my books or notes uploaded? | No. Files are copied into the app’s private storage on your device and stay there. |
| Is there an account? | Optional. It takes an email address and a password, unlocks nothing, and can be skipped entirely. |
| Are there ads? | Yes, in the free version — served by Google AdMob, which collects your advertising ID and device data. |
| Are there analytics or crash reporting? | No. No analytics, attribution or crash-reporting SDK is bundled. We collect no usage statistics. |
| Does the app talk to the internet? | Yes — for ads, the optional account, the purchase check and the update check. Never to send your reading data. |
| Is data sold? | Never. We do not sell or share personal data, and we hold nothing beyond an account email if you create one. |
| How do I delete everything? | Wipe all data in Settings, or uninstall the app. Delete an account by emailing us. |
2. What stays on your device
Everything the app knows about your reading is written to local storage in the app’s own private directory, readable only by Shelfgoal:
- Book files. When you add a PDF, the app copies it into its own storage so your library keeps working if the original is moved or deleted.
- Reading data. Titles, authors, page counts, covers, current page, shelf status, start and finish dates, ratings.
- Sessions. When a reading session started and ended, and which pages it covered.
- Notes, highlights and bookmarks you write, and the page each is pinned to.
- Goals, streaks, reminders and preferences such as theme, accent and reading mode.
None of this is transmitted to us or to any third party. There is no sync, no cloud library and no server-side copy. You can export it yourself at any time from Settings, as JSON or as Markdown.
3. What is collected, and by whom
Shelfgoal itself operates no server and receives no data from the app directly. Three bundled services do reach the internet, and each is described below with the data it handles.
3.1 The optional account
You can register with an email address, a display name and a password. This is entirely optional: every feature in the app works without it, it gates nothing, and there is no sync behind it.
Accounts are handled by Google Firebase Authentication (Google LLC), acting as our processor. If you register, Firebase stores your email address, your password in hashed form, an account identifier, and its own sign-in metadata — which includes the IP address and approximate time of each sign-in. Your display name is stored on your device.
Your library, notes and reading history are not attached to the account and are not uploaded when you sign in. The legal basis for this processing is your consent, given by choosing to register; withdraw it by deleting the account.
Firebase’s handling is governed by the Firebase Privacy and Security policy.
3.2 Advertising
The free version of Shelfgoal is ad-supported. Ads are served by Google AdMob (Google LLC) as a banner, as an occasional full-screen interstitial, and as a screen shown when the app opens.
To serve and measure those ads, AdMob collects data independently of us, including your advertising identifier (the app declares the Android AD_ID permission for this), IP address, device model, operating system version, coarse location derived from IP, and your interactions with the ads themselves. This data goes to Google, not to us — we receive only aggregate, anonymous revenue and impression counts that cannot identify you.
You can limit this. Android and iOS both let you reset or delete the advertising identifier and opt out of personalised advertising in your device’s privacy settings, and that choice is honoured here. Removing the full-screen ads by purchase (below) does not remove the banner, and does not stop AdMob’s collection for the banner that remains.
See how AdMob uses data and the Google Privacy Policy.
3.3 The in-app purchase
One optional one-time payment removes the full-screen ads. The transaction is handled entirely by Google Play Billing or the Apple App Store under their own privacy policies. We never see your card number, billing address or any other payment detail — the app only asks the store whether this account has bought the product, and stores that yes-or-no answer on your device.
3.4 The update check
On Android the app asks Google Play whether a newer version exists, so it can offer an in-app update. This is a request to Google’s servers under Google’s privacy policy; it sends nothing about your library.
3.5 What is never collected
No analytics, attribution or crash-reporting SDK is bundled. We do not collect usage statistics, screen views, session telemetry or crash reports, and we do not build a profile of you. We ask for no contacts, no photos, no precise location and no phone number.
4. Permissions and why they exist
| Permission | Why |
|---|---|
INTERNET | Used for ads, the optional account, the store purchase check and the update check. Never used to send your books, notes or reading history. |
AD_ID | Lets AdMob read the advertising identifier to serve and measure ads. |
BILLING | Required by Google Play for the one-time purchase that removes full-screen ads. |
POST_NOTIFICATIONS | Reading reminders, scheduled and delivered on your device. Nothing is sent to a server, and no push service is used. |
RECEIVE_BOOT_COMPLETED | Re-schedules your reminders after the device restarts. |
ACCESS_NOTIFICATION_POLICY | Focus mode silences notifications while a book is open and restores them when you leave. This permission only makes the app eligible — Android still requires you to grant Do Not Disturb access in system settings, and the feature does nothing until you turn it on. Alarms are always allowed through. |
| Storage | Not requested. Books are chosen through the system file picker (Storage Access Framework), which grants access to only the single file you picked. The app never asks for broad access to your photos, media or files. |
5. Opening a PDF from another app
Shelfgoal can be chosen from the system “Open with” or share sheet for PDF files. When you do that, the operating system hands the app a temporary reference to that one file, which is copied into the app’s storage and added to your library. Choosing Shelfgoal in that sheet grants access to that file only.
6. Device backups
Android’s own backup feature is enabled for Shelfgoal, so your reading database and preferences can be included in the device backup you have already configured with your operating system vendor. Book files themselves are excluded from cloud backup.
Those backups go to your account with your device or platform vendor, under their privacy policy — not to us. We have no access to them. You can disable backup for this app in your device settings at any time.
7. How long anything is kept
- On-device data is kept until you delete it. “Wipe all data” in Settings clears it immediately, and uninstalling the app removes its storage.
- Account data is kept in Firebase for as long as the account exists, and is deleted when you delete the account. Firebase’s own sign-in logs expire on Google’s schedule.
- Advertising data is retained by Google under its own retention policy, which we do not control.
8. International transfers
Google processes account and advertising data on servers outside your country, including in the United States, under the safeguards set out in Google’s own privacy documentation. If you never create an account, no account data exists to transfer.
9. Children
Shelfgoal is not directed to children and is intended for users aged 18 and over. It shows advertising, offers an in-app purchase, allows an email account, and lets users import documents we cannot see or moderate. We do not knowingly collect personal data from children. If you believe a child has created an account, email us and we will delete it.
10. Your rights and your control
Laws such as the GDPR and the CCPA/CPRA give you rights to access, correct, export, restrict and erase personal data held about you, and to object to processing. For everything stored on your device you exercise these directly:
- Access and portability: Settings → Export data (JSON), or export notes as Markdown.
- Correction: every field — title, author, page count, progress, dates — is editable in the app.
- Erasure: delete a single book or note, use “Wipe all data” in Settings, or uninstall the app, which removes its storage.
- Opting out of personalised ads: reset or delete your advertising identifier in your device’s privacy settings.
For the one thing we do hold — your account email, if you registered — write to mustafasidhpuri13@gmail.com to request access, correction or deletion. We aim to answer within 30 days. We do not sell personal data, so there is no “do not sell” list to join. You also have the right to complain to your local data protection authority.
11. Security
Your library lives in the app’s private storage, which the operating system isolates from other apps. The strongest protection here is structural: there is no server holding your reading data. Account credentials are held by Firebase Authentication, which stores passwords hashed and transports them over TLS. Keeping your device locked and up to date is what protects the data on it.
12. This website
This site is a set of static pages. It sets no cookies, runs no analytics, embeds no trackers and loads no third-party resources — fonts and images are served from this domain. It is hosted on GitHub Pages, and GitHub keeps standard server logs (such as IP address and requested page) for security and reliability, under the GitHub Privacy Statement. We do not have access to those logs.
13. Changes to this policy
If this policy changes, the revised version will be published here with a new “last updated” date. Material changes will also be noted in the app’s release notes. Continued use of the app after an update means you accept the revised policy. See also the Terms & Conditions.
14. Contact
Questions about privacy, requests about your account data, or anything in this policy can go to mustafasidhpuri13@gmail.com. We answer privacy questions first.