Cloud Synchronization
Valpr Reader allows you to synchronize your library, reading positions, bookmarks, reading telemetry, goals, and reader profiles between all your devices using Google Drive or Microsoft OneDrive.
Supported Cloud Providers
- Google Drive: Stores your reading data and books in an isolated application folder (
Valpr Reader) in your personal Drive storage. - Microsoft OneDrive: Stores your reading data and books in your OneDrive personal cloud.
Setting Up Cloud Sync
1. Google Drive Setup
- Go to Settings > Data > Storage Sources.
- Click Connect Google Drive.
- If prompted for an OAuth Client ID, you can use the default provided ID or supply your own Google Cloud Console Client ID.
- Authorize Valpr Reader to access its dedicated folder in your Drive.
- Once connected, your books and sync metadata will begin synchronizing.
2. OneDrive Setup
- Go to Settings > Data > Storage Sources.
- Click Connect OneDrive.
- Sign in to your Microsoft Account and grant permissions.
- Valpr Reader will create a secure storage folder in your OneDrive.
How Background Synchronization Works
- Automatic Replication: Synchronization runs in the background. Progress updates and checkpoints are saved locally first, then debounced and sent to the cloud.
- Offline-First: You never lose reading progress if your internet connection drops. All changes are queued in browser IndexedDB and reconciled once you reconnect.
- Prioritized Sync (read-ready): Each sync downloads reading position + manual bookmarks for currently-reading books first (in progress and opened within the last 30 days) — the payload you need before starting to read. Cards show a read-ready badge (spinning = syncing reading state, check = synced), and the header spinner reports
Reading state n of mwhile it runs. Opening a read-ready book opens instantly from the local copy without a blocking cloud sync screen. The deferred upload for those books plus everything else (statistics, goals, profiles, tags, finished/unread/stale books) follows immediately after in the background. Read-ready means you are seeing the latest; the fullSync completetoast still only fires when everything is done. - Manual Sync in the Reader: When pending changes exist, the reader footer shows a sync button. Tapping it runs the same two stages for the open book only: it pulls the latest reading position + manual bookmarks first (surfacing a jump offer when the cloud is ahead — never auto-jumping), pushes local changes up, then syncs the remaining queued types. Background autosave sync stays upload-only. Reconnecting an expired session first pulls the open book's reading state so the jump offer appears without waiting, then runs the full library sync — which skips re-downloading that state via its up-to-date checks — and refreshes the open book again the same offer-only way.
- Smart Conflict Resolution:
- Reading Position: Automatically takes the latest reading position timestamp.
- Bookmarks, Tags, Statistics, Goals, Profiles: Normal sync always merges both sides together, so changes from every device are kept.
- Profiles: Custom device profiles are synchronized so your tuned layouts roam automatically between devices.
Sync Recovery (Settings > Data)
Normal sync never throws anything away. Sync Recovery is the one-shot exception for when your devices have diverged and you want one side to win:
- Make cloud match this device (Push): Replaces the cloud copy with this device. Anything on the cloud that is not on this device is permanently deleted. Use after cloud-side data loss.
- Make this device match cloud (Pull): Erases this device and copies from the cloud. Anything on this device that was never synced is permanently lost.
Both actions ask Are you sure…? first, with a red destructive confirm button (Replace cloud copy / Erase this device). Reading position always keeps the newest change from either side. This cannot be undone.
Privacy & Security
Valpr Reader interacts only with the files and folders it creates. It never reads, modifies, or accesses any other files in your Google Drive or OneDrive. All communication occurs directly between your browser and the cloud provider API; no third-party intermediary servers ever see your reading data or credentials.