Skip to content

Multi-device sync

DecksMD syncs alongside your vault — iCloud Drive, Obsidian Sync, Dropbox, Syncthing, anything that shares the vault folder works. You can review on your phone and your desktop without losing history on either.

DecksMD uses two files to do this:

  • <plugin folder>/flashcards.db — the SQLite database holding every card’s FSRS state and full review history. This is the cold-storage snapshot, persisted to disk every ~30 minutes when there’s new activity (and when the app is backgrounded or unloaded).
  • <deviceId>.deckssynclog — one small append-only JSONL file per device, in your vault root. Every state change — rating a card, editing a profile, creating a custom deck, starting or ending a session — is recorded as a single short line. Other devices read these files on app focus and replay the entries into their own database.

The custom .deckssynclog extension keeps the file out of Obsidian’s file explorer; you’ll see it in Finder/Files but it never shows up as a note.

iCloud and other file-sync providers ship these small text logs dramatically faster than the binary database — typically seconds instead of minutes. That’s why the cross-device “I just rated this on my Mac, now I see it on my iPhone” lag is usually 15–30 seconds rather than 1–2 minutes.

The log self-truncates to the last 30 days on plugin load. Long-running history (months or years) is preserved in the binary database, which still syncs on its own slower schedule.

If your sync provider creates conflict-copy files (for example iCloud’s <deviceId> (Mac's conflicted copy 2026-05-13).deckssynclog), DecksMD detects them, applies any unique entries, and renames the original aside as *.consumed-<timestamp> so it isn’t re-processed.

Under the hood, when the database is saved, DecksMD merges before saving: review history from both devices is preserved, and for cards and decks the newer version wins. This is what lets two devices edit independently without clobbering each other.