CAPABILITY 04 / 05
Mobile
We build mobile software for the world it actually runs in: intermittent signal, mid-range hardware, and users with no patience for spinners.
THE POSITION
The mobile bar is set by the best native apps on the device, not by other cross-platform apps. React Native clears that bar only with discipline: virtualized lists, off-thread work, local-first data, and profiling on the cheapest phone in the drawer — not the newest.
Fieldkit is our reference architecture: SQLite as the source of truth, a mutation log for sync, merge policies per entity, and a UI that never asks the network for permission to respond.

One codebase, native modules where the platform demands
The device is the database; the server is a peer
Shared types with the backend — sync bugs become compile errors
Reproducible binaries and staged rollouts
Gesture-driven motion on the UI thread, not over the bridge
PHASE 01
Connectivity audit
Where will this actually run? The worst network in the user’s day sets the architecture.
PHASE 02
Data model + merge policy
Every entity declares how it syncs and how conflicts resolve — before UI.
PHASE 03
Frame-budget build
Profiled on mid-range Android throughout — 60 fps is a gate, not a goal.
PHASE 04
Field simulation
72-hour offline simulations and chaos sync runs before any store submission.

