Working offline
What works with no connection, what deliberately does not, and how conflicts resolve when two devices edited the same thing.
Checked against the running product on 5 min readMarkdown
On this page
Every device keeps a real SQLite database of your workspace. It holds the actual rows, and every screen queries them locally. When you open a board with no signal, nothing is being retried in the background, because the data is already there.
Edits land in that local database at once and queue for upload. There is no "saving" spinner, because there is no server round trip to wait for.
What works with no connection#
Everything here reads and writes offline
- Work
- boards, cards, columns, labels, checklists, the Planner, Today, the Calendar, notes and folders, the Inbox, the journal, whiteboards and templates.
- Routines
- habits and their check-ins, focus sessions.
- Money
- expenses, income, debts and budgets.
- The household
- recipes, the week's meal plan, the shopping list, chores, allowances, the family ledger, savings goals, points, houses and seasons.
- People
- chat messages, reactions and your notifications.
Search runs against the same local database, so finding a card, a note or a habit works offline too. The one exception is Words in files, the results that find a picture or a scan by a word inside it: those words are kept on the server, so that group stays empty until you are back online. See Files and scans.
The shopping list was built for the supermarket basement with one bar of signal. Adding items, checking them off and claiming the run all work there.
What waits for a connection, and why#
Not everything is in the local database. Some things live on the server by design, and some need a service that only runs there. None of them stop the rest of the app working; they wait, or say they cannot reach the server.
Account and people. These live on the server and only there:
- billing and plan changes
- inviting members, changing someone's role, and guests
- sharing a board or a note with someone, and making or revoking a public link
- answering a claim that someone owes you money
- a child's other home: offering or answering a share, its switches, and See the child's other home (see Family workspaces)
- Agent Pacts
A client that could write its own plan or role would make both meaningless. Pacts are the same case: their whole value is that the server refuses the writes it should refuse, and a rule enforced on a device you can edit is not enforced. See Agent Pacts.
Margin Intelligence and everything it reads. The assistant runs on a server, so these all need a connection:
- asking the assistant anything, including its web search, Plan a goal and the morning brief
- reading the dates out of a school letter, a receipt or an email
- reading the words in a picture or a scan, and the Words in files search results
- cloud dictation (see Talking instead of typing)
- turning a voice memo into a note
- the Mind's weaving, suggestions and recall
Files. Uploading an attachment, scanning paper into a PDF, and opening an attachment you have not opened on this device before. A picture shared from another app on the phone needs a connection too; shared words and links are kept and sync later.
Connected services. Connecting or using Slack, GitHub, Zapier, Canva, Google Calendar and other integrations, subscribed calendars (they refresh on the server about once an hour), and any agent you connect over MCP, which reaches your workspace through the server. See Integrations.
Writing a note together. Two people typing in one note share their cursors through the server. Offline you keep writing on your own, and the two versions are put together when you reconnect. See Writing in a note together.
When two devices disagree#
The last write to reach the server wins, field by field. Conflicts are rare in practice, because the usual case is one person on one device at a time.
Notes are where a clash costs the most, so notes show it. If a note changed on another device while you were writing, a bar appears above it with the first line that differs and three answers: Keep both, Keep mine and Take theirs. Ignoring the bar is fine too; your draft keeps saving.
New versions and refreshing#
Pull down on a phone, or press Refresh in the header on a computer, and the app fetches fresh data. It never reloads the page under you.
A new version of the app waits until you leave it for a while or follow a link, and then loads quietly. If you want it straight away, the Refresh now prompt takes 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 works.
Use airplane mode on a real device. That is how we found our own offline bug: the app cached every page except the database engine, so it loaded fine and then had nothing to read from.
Before you rely on it
- Install the app (see Your first hour).
- Open it on a connection and let the first sync finish.
- Turn on airplane mode and open a board, a note and the shopping list.
Storage#
A local database for a heavy workspace is not small, and a workspace with many whiteboards is the heavy case. Browsers may clear storage for sites you have not visited in a long time. An installed app is far less likely to be cleared, which is the other reason to install it.