Sync
Sync is the part of Enve that has the most prior-art baggage. Short version: there are three layers, none of them silently overwrites the others, and there's a single screen where you can see what's happening.
Three layers of sync
- iCloud (Apple only). Progress, bookmarks, and annotations across your Apple devices.
- Server sync. Audiobookshelf, Plex, Grimmory, Storyteller, Komga, Kavita, and their native progress APIs.
- External sinks. KOReader and KOSync (including via the Grimmory bridge), plus Hardcover.
Each layer is independently configurable. You can run all three, just one, or none.
iCloud (CloudKit)
On iOS, Enve uses CloudKit to sync between every device on your Apple ID:
- Listening progress
- Bookmarks (audiobook and ebook)
- Annotations and highlights
- Library configuration (sources, collections)
Nothing leaves your iCloud. No Enve server touches this data.
Server-native sync
If your backend has its own progress API, Enve uses it:
- Audiobookshelf. Full sync: progress, bookmarks, listening sessions.
- Plex. Native watch state for audio and video.
- Grimmory. Audiobook and ebook progress, plus the KOReader bridge.
- Storyteller. Alignment and progress.
- Komga, Kavita, Jellyfin, Emby. Native read state per server.
You can prefer the server as the source of truth, or prefer iCloud. It's configurable per source.
KOReader and KOSync
Two integration paths:
- Direct KOSync (Android): the classic KOSync HTTP protocol, for talking to a KOReader Sync Server alongside your e-ink device.
- Grimmory bridge (iOS and Android): Grimmory's KOReader sink, which handles both audiobook and ebook progress through the same channel.
Either way, when you finish chapter 12 on your Kobo, your iPhone audiobook picks up at the right spot.
Hardcover
Hardcover is a reading-tracking service. Enve integrates it for metadata enrichment, reading goals, and progress sync. Useful if you keep your bookshelf there. (iOS Book Player.)
Conflict resolution
When two layers disagree (say, the server says 30% and iCloud says 45%), Enve doesn't pick silently. It surfaces a conflict in the player and on the book detail page, and you choose which one wins for that book.
Other apps have lost listener data by guessing at conflict resolution. Enve treats your progress as something you own. If it can't be 100% sure, it asks. The cost is one tap. The upside is no silent data loss.
Sync Center
Settings → Sync Center is the single place to see what's syncing where: which sources are enabled, last-sync timestamps, queued pending writes, and any unresolved conflicts. Useful when you suspect something is stuck.