Sync & Collaboration
No Websocket Model
VauSheet uses versioned snapshots with polling. This avoids realtime subscriptions while still supporting multi-user sync.
Save Pipeline
- Client keeps local workbook state.
- Commit sends snapshot + base version to Supabase RPC.
- Server increments version on success.
- Conflict is returned if base version is stale.
Polling Pipeline
Client polls latest version every ~1.5s. If newer version exists, latest snapshot is loaded and merged into UI with remote highlights.
Conflict Behavior
If two users save same base version, first commit wins and second receives conflict. App reloads remote snapshot and keeps user position.