The short version

ContinuousReader and JustReader do not collect, analyze, or sell any personal data. No analytics, no telemetry, no tracking, no advertising. Your data stays with you — on your own devices, in your own iCloud account if you turn on sync, and briefly in transit between your devices when sync hands a fresh reading position from one to another. Nothing else, nowhere else.

Data stored on your device

All app data is stored locally on your device:

  • Books — converted to HTML and stored in your app’s Documents directory. You can browse these files in Finder.
  • Reading positions, bookmarks, notes — stored in a local SwiftData database within the app sandbox.
  • Reader settings — font, theme, layout preferences, stored in UserDefaults on each device.
  • Translation history — if translation statistics tracking is enabled, looked-up words are stored locally. You can disable tracking or clear the history at any time.

Sync (optional, ContinuousReader only)

When you turn on sync, your reading data lives in only three places — and travels only between them:

  • Your own devices, locally — the same content stored on each device the app is installed on. This is also exactly what you have when sync is off.
  • Your iCloud account, under your Apple ID. Apple hosts it; the developer has no access. Specifically: book files (converted HTML, cover images, per-book metadata) go to iCloud Drive; bookmarks, notes, library metadata, folders, OPDS catalogs, and a backup of your latest reading position go to iCloud Key-Value Store; translation records, if you opted into tracking, go to iCloud Drive.
  • In flight, between your devices — when you turn a page, the new position is relayed to your other devices through an encrypted realtime channel. The payload contains a hashed book identifier, a paragraph anchor inside the book, and a progress percentage — no titles, no content, no names. Messages pass through and are not retained on the channel. The relay is operated by Ably; tokens that let your devices connect to it are minted by a small Cloudflare Worker. Both see only a randomly generated user identifier we keep in your iCloud Keychain.

You can disable sync at any time; your library continues to work locally on each device.

Network access

JustReader has essentially no network footprint — only URL import touches the network. ContinuousReader uses the network for sync and OPDS browsing when those are enabled. Specifically:

  • Sync is enabled (ContinuousReader only) — book files go through Apple iCloud Drive, bookmarks and metadata through Apple iCloud Key-Value Store, and live position updates through an encrypted realtime channel between your devices (see Sync, above, for what each path carries)
  • OPDS catalog browsing (ContinuousReader only) — you connect to third-party book catalogs you configure yourself
  • URL import (both apps) — when you drag a URL into the import dialog to download a book file

During the act of reading, the only traffic is the position sync covered above — and that carries only a hashed book ID, a paragraph anchor, and a progress percentage, never any content. Translation is on-device through Apple’s Translation framework — nothing about the book itself ever leaves your device.

Third-party services

The apps do not integrate any third-party analytics, crash reporting, advertising, or tracking services. The external dependencies are Apple’s own frameworks (iCloud, Translation), and — only when you turn on sync — Ably (an encrypted realtime relay for your reading position) and a Cloudflare Worker (which mints short-lived tokens that let your devices connect to that relay). Both see only a random identifier we keep in your iCloud Keychain — never your name, email, or anything tied to your real identity — and neither retains the messages flowing through.

Children’s privacy

The apps do not collect personal information from anyone, including children under 13.

Changes to this policy

If this policy changes, the updated version will be posted here with a new "Last updated" date. The apps themselves do not collect data, so changes would only reflect new features (like optional cloud services).

Contact

Questions about privacy: hello@continuousreader.app