90° Angle 90° Angle 90° Angle 90° Angle Angle · Studio
DWG-02 · Design system · 2024

Field Notes OS

Field notes that survive a week without signal — and sync themselves the moment a connection comes back.

Client
Climate research lab
Engagement
Design system + app · fixed price
Timeline
6 weeks, brief to live
Stack
TypeScript · CRDTs · Service Workers
01 / Brief

The data died in the field.

Researchers spent days in places with no signal, logging readings on paper and phones, then lost half of it to a flat battery, a closed tab, or a sync that overwrote the wrong copy. The lab didn't need a "platform" — it needed notes that couldn't vanish.

The brief was narrow on purpose: capture must work with zero connection, for days, and never silently lose an edit. Everything else was negotiable. That wasn't.

02 / Build

Offline is the default, not the fallback.

I built it offline-first from the data layer up: every note lives locally first, the app is fully usable with the network unplugged, and a conflict-free merge (CRDTs) reconciles two researchers editing the same record without a "which version wins?" dialog. Sync is a background detail, not a button people have to remember.

Fig. 2 — Sync state. Local always wins the write; the server reconciles, never overwrites.

On top of that sat a small design system — a dozen components for capture in bad light, with gloves on, in a hurry — so every screen the lab added later behaved the same way without my involvement.

03 / Detail

The parts that earn trust.

Most of the value lived where nobody looks: a visible record of what's saved locally versus synced, edits that queue instead of fail, and a merge log a scientist can actually audit. Trust came from showing the state, not hiding it.

Fig. 3 — Capture components. Large targets, high contrast, no precision required.
"We stopped losing data. That was the whole job, and it's done."
— Lab lead, Field Notes OS
6 wks
Brief to live, fixed price. No overrun, no change orders.
7 days
Offline use, fully functional, before a single sync is needed.
0
Lost or overwritten records since the field rollout.

Have something narrow and real?

That's exactly the kind of brief I like. Two slots open for Q3.

Start a project