Menu

Works on the ferry, in the basement, and at the warehouse loading bay

Most applications treat losing connectivity as an error state. For field teams, drivers, inspectors and warehouse staff it is simply Tuesday — and an app that stops working is an app they stop using.

How it works

The naive version of this is a cache and a retry, and it holds until two people edit the same record on two devices while both are offline. Then you have a conflict, and how the software resolves it is the whole engineering problem.

What gets built: a local database on the device as the source of truth for the user, so the interface never waits on a network round trip and never blocks on a spinner. Every change is queued as an intent rather than a final state, which is what makes replay safe. Sync runs in the background when a connection appears, and — critically — it is idempotent, so a sync interrupted halfway through a tunnel does not duplicate records when it resumes.

Conflict resolution is decided with you, per data type, before anything is written. Last-write-wins is fine for a free-text note and catastrophic for a stock count. Some fields merge, some need a human to choose, and a few must never diverge in the first place — that conversation is design work, not a library setting.

The honest constraint: offline-first roughly doubles the state you have to reason about, so it is worth it when people genuinely lose connectivity and not worth it when they merely have slow Wi-Fi. If your users are always online, I will tell you to skip this and spend the budget elsewhere.

This is the same discipline as the external-writes rules published on the AI page: never let local state answer a question the authority can answer, and make every write safe to retry when you do not know whether it landed.

What you get
  • A local-first data layer — the interface never waits on the network
  • Idempotent background sync, safe to interrupt and resume
  • Conflict resolution agreed per data type before a line is written
Work behind this
Automated hosting, domain and WordPress platform with registry integration a Finnish hosting provider Sprig — multi-tenant marketing platform with AI content and a unified inbox Sprig Multi-tenant association platform with per-tenant cPanel and database isolation a Finnish association management vendor

Something holding you back?

New build, rebuild, or adding AI to what you already have — I'll take a look and give you an honest perspective.

Get in touch ↗