How sync works
Foliato Sync keeps the local folder and the server aligned in both directions. It uses SSE for live updates and a native file watcher for local changes.
Download sync
When the server registers a change (e.g. another member uploads a file), it emits an SSE event that the client listens to and applies immediately.
If the client was offline, on reconnect it requests a delta from its last version and downloads only what changed.
Upload sync
The app watches the local folder with a native file watcher (FSEvents on macOS, ReadDirectoryChanges on Windows).
Changes are debounced by 3 seconds to avoid unnecessary uploads during active edits.
Conflict resolution
If two devices edit the same file simultaneously, the server detects the conflict by version and returns 409.
- 1The app creates a local copy with suffix "(conflict β your team)".
- 2Your version stays in the folder with that alternate name.
- 3The server version downloads with the original name.
- 4Compare, edit, and re-upload the one you want to keep.

History and status
From the app you can see recent sync history: files downloaded, uploaded, errors, and conflicts.
