Prototypes LedgerP12 · CRM on the device

?Device
↑↓Move↵OpenTabScopeEscClose

Keyboard shortcuts

How Ledger is built
  1. Each contact and each deal is a Yjs document on the device, stored in IndexedDB. The page is cached by a service worker, so it opens with no network.
  2. A change is written on the device first. The records with changes wait in a list, and each is sent as the difference from what the server has acknowledged.
  3. The server keeps every update and answers with the updates from other devices since the device’s last sync. Over the WebSocket the server sends a message when there is something new, with the record each device has open.
  4. Text merges letter by letter. Tags, people and tasks are sets and lists that keep what both sides added. A stage, an owner, an amount or a date chosen differently on two devices keeps both values, and each device shows the conflict until a person keeps one.