Cross-Device Sync
Dialogue is offline-first. Everything works locally with no account, no server, and no internet connection. When you’re ready, sign in to sync your notes and meeting transcripts across all your devices.
Offline-First by Default
When you first launch Dialogue, it generates a device-bound encryption key and stores it in your macOS Keychain. All notes and transcripts are encrypted locally and available immediately. No setup, no sign-in, no network required.
This means:
- You can create notes, record meetings, and search your data with no internet connection
- Your data is encrypted at rest on your device from day one
- There is never a moment where your data exists unencrypted on someone else’s server
Enabling Sync
When you create an account and sign in, Dialogue upgrades your local key vault to a password-derived master key. This is done seamlessly:
- Your password is used to derive a master key via PBKDF2-SHA256 (600,000 iterations)
- Your existing local key vault is re-encrypted under this new master key
- All per-document encryption keys are preserved — zero data loss
- A WebSocket connection to the sync server is established
- All local changes are automatically flushed to the server (encrypted)
From this point on, any change you make on one device is synced to all your other devices in real time.
How Sync Works
Dialogue uses Automerge CRDTs under the hood. CRDTs (Conflict-free Replicated Data Types) allow multiple devices to edit the same document independently and merge changes automatically — no conflicts, no data loss, even when devices are offline.
The sync flow:
- You edit a document locally
- The Automerge change is encrypted on your device with ChaCha20-Poly1305
- The encrypted binary is sent to the sync server via WebSocket
- The server stores the encrypted blob in S3-compatible storage and broadcasts it to your other devices
- Each device decrypts the change and merges it into the local document
The sync server never sees plaintext. It is a relay for encrypted data.
Disabling Sync
You can disable sync at any time from the account menu. When you do:
- Your WebSocket connection is closed
- A new local-only device key is generated
- Your vault is re-encrypted under the new local key
- All your data remains on your device, fully functional
Supported Data
All of the following sync across devices:
- Notes — full content, title, metadata, and formatting
- Meeting transcripts — speaker-labeled transcript segments and metadata
- Workspace index — your list of notes and meetings stays in sync
- Audio recordings — encrypted and uploaded via a separate blob storage channel