What problem does it solve?
Data edits across distributed UI can lead to race conditions and data loss when multiple clients modify the same resource. Gesture-based-sync replaces full-state updates with atomic actions, enabling safer concurrency and easier reconciliation.
Core Features & Use Cases
- Action-based updates: Send user gestures (actions) instead of entire state blobs, enabling precise change tracking.
- Conflict detection & resolution: Backend computes the resulting state from actions and detects conflicts for safe merges.
- Offline and undo/redo support: Actions can be queued and replayed, enabling offline work and reversible edits.
Quick Start
Start by wiring action-based endpoints (e.g., POST /clips/{clip_id}/actions) and define action types such as add_crop_keyframe, move_crop_keyframe, delete_crop_keyframe. Then on the client, queue actions for offline scenarios and replay them in order, while the server applies each action atomically and updates the version. Example: post a payload { "action": "add_crop_keyframe", "data": { "frame": 100, "x": 50, "y": 50 } } to the actions endpoint.