All documentation
Documentation

Start here

Working offline

What works with no connection, what deliberately does not, and how conflicts resolve when two devices edited the same thing.

Every device keeps a real SQLite database of your workspace. Not a cache of the last few screens, but the actual rows, queried locally. When you open a board with no signal, nothing is being retried in the background; the data is already there.

What works with no connection

Boards, cards, columns, labels, checklists, the Planner, Today, Notes and folders, habits and their check-ins, expenses, focus sessions, whiteboards, journal entries, and search across all of it.

Edits apply immediately to the local database and queue for upload. There is no "saving" spinner because there is no server round trip to wait for.

What does not, and why

Anything server-authoritative: billing and plan changes, inviting members, changing someone's role, and connecting integrations. Those live on the server by design, because a client that could write its own tier or role would make both meaningless.

Also unavailable offline: anything that calls a model. Margin AI needs the network. Attachments you have not opened before need to be fetched.

When two devices disagree

Last write wins, per field, using the server's arrival order. In practice conflicts are rare, because the common case is one person on one device at a time.

The case worth knowing about is whiteboards. A canvas open in an editor holds its own copy of the document while you work. If something else writes to that whiteboard while it is open, whether an agent or another device, the editor adopts the change when you close and reopen it rather than live. Reopen the board if you know something else touched it.

Checking it honestly

Chrome DevTools "Offline" does not simulate this correctly. The service worker keeps using the real network while the page believes it is offline, so the test passes whether or not offline actually works.

Use aeroplane mode on a real device. It is the only check that means anything, and it is the one that found our own offline bug: the app was caching every page except the database engine itself, so it loaded beautifully and then had nothing to read from.

Storage

Local databases are not small. A heavy workspace with many whiteboards can run to hundreds of megabytes on the device. Browsers may evict storage from sites you have not visited in a long time, and installing the app as a PWA makes that much less likely, which is the other reason to install it.

Checked against the running product on