← back to projects
PROJECT 04 · 2024
Fieldnote
An offline-first data collection tool for field researchers and NGO teams working in areas with unreliable connectivity.
Product
Shipped
Product engineer
React NativeSQLiteGraphQL
The problem
Field teams collecting survey and monitoring data in rural areas were losing work when connectivity dropped mid-form. Existing tools treated offline mode as an afterthought rather than the default condition.
The approach
Designed offline as the primary state and online sync as the exception, not the other way around. Every form is fully usable with zero connectivity, and sync happens quietly in the background whenever a connection appears.
OBSERVE↓REDUCE↓MODEL↓BUILD↓TEST↓SHIP
System diagram
Focus or hover a node for what it does.
Field device
↓
Local form store
↓
Background sync
↓
Server record
↓
Team dashboard
A field device holds a complete copy of active forms.
Every response is written locally the instant it's entered.
Sync runs opportunistically, never blocking data entry.
The server reconciles records and flags true conflicts for review.
A team dashboard shows collection progress in near real time when connected.
By the numbers
100%
Forms usable fully offline
21
Interface states
4
Field pilots
6
Releases
Decisions I kept
- Conflict resolution surfaces the conflict rather than guessing a winner
- Sync status is always visible, never hidden behind a spinner
- Forms compile to a single portable file for easy distribution
Things I didn't build
- Real-time collaboration on the same form — collection happened one device at a time
- Complex form branching logic beyond simple conditional questions
- A web version — the field context was overwhelmingly mobile
What changed
Used across four field pilots without data loss during connectivity gaps, which had been the single biggest complaint about the tool it replaced.
YOU MAY ALSO WANT TO EXPLORE
The Cost of Clever Code →