Documentation
Data Management·

Sync and Consistency

How cloud sync works under a local-first model, how to turn it ON/OFF, and the behavior when conflicts occur.

Sync Assumptions

niyase's desktop / mobile apps are local-first. The SQLite on your device is the single source of truth, and the cloud is positioned as a replica.

  • Not logged in: No sync. Fully local
  • After logging in: Choose sync ON/OFF per space

Turning Sync ON/OFF

Toggle it from Space settings → Sync tab.

  • ON: Edits are automatically reflected to the cloud and become visible on your other devices
  • OFF: Stays local. Data is not uploaded to the cloud

"Log out" and "sync OFF" are different concepts. Even after you log out, local data remains in a "cloud-cached" state.

Sync Status in the App Bar

The app bar always shows a sync status icon (the reassurance of the Google Docs model).

IndicatorState
◯ greenFully synced
↻ blueSyncing
⚠ yellowConflict present / temporarily retrying
✕ graySync OFF or not logged in

Behavior on Conflicts

When the same record is edited simultaneously on multiple devices:

  1. Last-write-wins by default, but important fields are protected
  2. All changes remain in the audit log
  3. The UI notifies you that a conflict exists → you can manually merge from the history

What Is Not Included in Sync

  • Device-specific settings (display color, pin order, etc.)
  • Local cache (PDF thumbnails, etc.)
  • Login sessions

Troubleshooting

When sync is not progressing:

  1. Click the status in the app bar to view details
  2. Check your network connection
  3. Run "Retry sync" for the relevant space
  4. If it still does not resolve, see Troubleshooting