Summary
ReadKeeps is built on one principle: your content belongs to you. The pages, books, highlights and notes you save are stored on your own device; if you turn on iCloud sync, they travel only through your own iCloud to your own other devices. ReadKeeps requires no account and includes no analytics, tracking or advertising SDKs. The developer runs a small service on Cloudflare that does only the things listed below; apart from feedback you choose to submit, none of your saved content, highlights or notes ever passes through it.
What we store, and where
- Local storage: web snapshots, extracted article text, highlights, notes, tags, reading progress and translations are all stored locally on your device.
- Optional iCloud sync: if you enable sync in Settings, articles, extracted text, highlights, notes, tags, reading progress and translations sync between your own devices via Apple's CloudKit Private Database; web snapshots, book files and optional offline audio/video sync through your own iCloud Drive. All of this belongs to your Apple Account, and the developer has no permission or channel to read it.
- No account system: ReadKeeps does not require sign-up or login, and does not collect usernames, passwords, phone numbers or email addresses for identity purposes.
What the developer's server does
The service the developer runs on Cloudflare handles only these four kinds of requests:
- Diagnostic logs (only when you upload them): when you tap “Upload” in the app, it sends the diagnostic log text, the app version, the OS version, and an anonymous device code randomly generated inside the app (used only to group uploads from the same device; it cannot be linked to you). Logs are automatically deleted after 30 days.
- Reader feedback (only after you confirm): before anything is sent, the app lists exactly what will be included, and uploads only after you confirm: a screenshot of the current app window, the article's title, original URL and ID, the current reading mode, the tail of the diagnostic log, the app and rules versions, the device model and OS version, the results of the automatic pre-submission checks, and the anonymous device code above. It does not send the article text, page source, web snapshots or your database. Screenshots and feedback records are automatically deleted after 30 days. Before submitting, the app also checks the latest version number, sending only the platform and channel (for example “iOS / TestFlight”).
- Live Activity push relay (iPhone): when you save from the share sheet, the app sends the push tokens issued by Apple, the domain of the saved page (not the full URL) and the number of queued items to the service, which forwards them to the Apple Push Notification service (APNs) so the Dynamic Island can show progress and wake the app to finish saving. The service discards them after forwarding; nothing is stored or logged.
- Site rules: the app periodically downloads the site-adaptation rules used for fetching pages from rules.readkeeps.org. This request carries no identifier related to you.
As with any online service, these requests travel over Cloudflare's network, and Cloudflare, as infrastructure, handles network information such as IP addresses. We do not associate this information with you or use it for tracking or analytics.
What we do not collect
- No usage analytics or behavioral tracking of any kind (no Google Analytics, no third-party analytics SDKs).
- No third-party tracking or advertising SDKs embedded in the app.
- We never sell, rent, or otherwise share your data with third parties.
Web fetching and browser extensions
- When you save a page, ReadKeeps fetches the URL you provided or selected acting as you (similar to opening that page in a browser). The result is stored only on your device (and your own iCloud) — it is never routed through or retained on the developer's servers.
- The Safari / Share Sheet / Chrome browser extensions only hand the current page's URL or content to the ReadKeeps app when you actively trigger an action such as “Save.” They do not collect or upload your browsing history in the background.
Full-text translation
Full-text translation uses Apple's system translation (the Translation framework) and runs on your device; the first time you translate into a language, the system downloads the language pack from Apple. Translations are stored on your device and, if iCloud sync is on, sync through your own iCloud. They never pass through the developer's servers.
Third-party services
- Apple: iCloud (CloudKit Private Database and iCloud Drive), the Apple Push Notification service and system translation, governed by Apple's privacy policy.
- Cloudflare: hosts the developer service described above and this website.
Children's privacy
ReadKeeps is not directed at children under the age of 13, and we do not knowingly collect personal information from children under 13.
Changes to this policy
If we make material changes to this policy, we will update the effective date at the top of this page and provide reasonable notice, such as an in-app notice.
Contact us
If you have any questions about this privacy policy, or want a diagnostic log or feedback you uploaded deleted, contact us at fearless@readkeeps.org and include the receipt number shown after uploading.