All demo projects

Live demo — you're browsing real sample data. Nothing here can be edited.

Create your own free →

Fieldbook — Inventory App

Fading
Last worked about 2 months ago
react-nativemobileoffline-first
Mission

Offline-first inventory tracking app for small warehouse teams — scan barcodes, sync when back online, works on cheap Android devices.

Current Goal

Get offline sync working reliably before onboarding the first pilot warehouse next week.

Next Action

Explicitly test the 3+ device sync conflict case before the pilot launch.

Resume Context

React Native + SQLite for local storage, syncs to Postgres via a queue table when online. Test device is a budget Android phone, not the emulator — emulator hides real performance issues.

Resume Briefing
example output
Where you left off

React Native + SQLite for local storage, syncs to Postgres via a queue table when online. Test device is a budget Android phone, not the emulator — emulator hides real performance issues.

Current blocker

The main open item is: Explicitly test the 3+ device sync conflict case before the pilot launch..

Recommended next action

Explicitly test the 3+ device sync conflict case before the pilot launch.

Suggested Next Stepexample output

Explicitly test the 3+ device sync conflict case before the pilot launch.

Generated from Fieldbook — Inventory App's own logged mission, goal, and next action — this is what your projects look like once you start logging sessions.

Sign up for AI-suggested next steps →

Context Health

Recency + completeness

60/100
Fading

Why (1)

Not touched in 50 days

Fix it

Resume this project or archive it to keep your context clean

Resources

railway

Decisions (0)

Why things are the way they are

No decisions logged for this project yet.

Sessions (4)

Session

about 2 months ago

1h 5m

Completed

Implemented the sum-of-deltas merge for offline stock edits — works correctly for the two-device case in testing.

Problems

Not yet tested with three or more devices editing the same item offline simultaneously — unclear if merge order matters at that point.

Decisions

Decided to explicitly test the 3-device conflict case before the pilot, rather than assume the 2-device logic generalizes.

Learned

A fix that works for the simplest version of a problem (2 devices) doesn't automatically prove it works for the general case (N devices) — worth testing the edge explicitly.

Next Action

Explicitly test the 3+ device sync conflict case before the pilot launch.

Session

about 2 months ago

1h 30m

Completed

Built the sync queue — offline changes get queued locally and pushed to the server in order once the device is back online.

Problems

Two test devices editing the same item while both offline caused the second sync to silently overwrite the first device's change.

Decisions

Decided against last-write-wins for stock counts specifically — instead, conflicting offline edits will merge as a sum-of-deltas rather than picking one value.

Learned

For counters (like stock levels), merging the change itself is usually correct; for text fields, last-write-wins is usually fine. One conflict strategy doesn't fit every field type.

Next Action

Implement the sum-of-deltas merge logic for the specific case of two devices editing the same item while both offline.

Session

about 2 months ago

1h 25m

Completed

Built the local SQLite layer — every scan, stock update, and item lookup now works fully offline with no network calls.

Problems

Realized partway through that timestamps saved locally in device time would cause problems once synced against a shared server clock.

Decisions

Standardized all locally-stored timestamps to UTC immediately on write, instead of converting at sync time — avoids a whole category of timezone bugs later.

Learned

Timezone bugs are much cheaper to prevent at write-time than to fix after data from multiple devices is already mixed together.

Next Action

Build the sync queue that pushes offline changes to the server once the device reconnects.

Session

about 2 months ago

1h 40m

Completed

Built the barcode scanning flow using the device camera — scan an item, look it up locally, show current stock count instantly.

Problems

Scanning worked instantly on the emulator but had a noticeable 1-2 second lag on the actual test Android device.

Decisions

Switched from decoding every camera frame to sampling every 3rd frame — barely affects scan speed for a human, but cut CPU load enough to remove the lag.

Learned

The emulator is not a reliable performance signal for camera-heavy features — always test on the cheapest real device you have access to.

Next Action

Build local SQLite storage so scanned items and stock counts work fully offline.

Ideas (0)

No ideas logged for this project yet.

Timeline

Chronological history of this project

railway

about 1 month ago

API_DOCS

Implemented the sum-of-deltas merge for offline stock edits — works correctly for the two-device case in testing.

about 2 months ago

Next: Explicitly test the 3+ device sync conflict case before the pilot launch.

Built the sync queue — offline changes get queued locally and pushed to the server in order once the device is back onli

about 2 months ago

Next: Implement the sum-of-deltas merge logic for the specific case of two devices editing the same item while both offline.

Built the local SQLite layer — every scan, stock update, and item lookup now works fully offline with no network calls.

about 2 months ago

Next: Build the sync queue that pushes offline changes to the server once the device reconnects.

Built the barcode scanning flow using the device camera — scan an item, look it up locally, show current stock count ins

about 2 months ago

Next: Build local SQLite storage so scanned items and stock counts work fully offline.

Project "Fieldbook — Inventory App" created

2 months ago