All demo projects

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

Create your own free →

Fieldbook — Inventory App

Healthy
Last worked about 4 hours 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

The project is currently focused on integrating the Merkl native APR into the aToken display. The Express server has been wired to show the combined base APR and native APR, but this hasn't been tested against the deployed Next.js static export.

Current blocker

The APR numbers haven't been checked in a deployed environment, which could lead to discrepancies.

Recommended next action

Test the standalone Express APR server end-to-end against the Next.js static export to ensure the APR display functions correctly.

Suggested Next Stepexample output

Test the standalone Express APR server end-to-end against the Next.js static export.

This is the single blocker between the current work and a production-ready APR display — everything else is already wired up.

Sign up for AI-suggested next steps →

Context Health

Recency + completeness

100/100
Healthy

✓ Strong context — you can resume this project instantly.

Decisions (2)

Why things are the way they are

Merge offline stock edits as sum-of-deltas instead of last-write-wins

Jul 4, 2026

Two offline devices editing the same item silently overwrote each other under last-write-wins.

Standardize all local timestamps to UTC at write-time

Jul 1, 2026

Device-local timestamps would cause bugs once multiple devices' data gets synced against a shared server clock.

Sessions (4)

Session

1 day 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

4 days 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

7 days 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

9 days 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 (2)

Test on a genuinely low-end device, not just "budget Android"

2 days ago

The camera frame-rate issue only showed up on real hardware, never the emulator — worth keeping an even cheaper device in the test pool permanently.

Generalize sum-of-deltas merge into a small sync library

3 days ago

This conflict resolution approach would apply to any counter-style field, not just stock counts — could be extracted and reused.

Timeline

Chronological history of this project

Project "Fieldbook — Inventory App" created

about 4 hours ago

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

1 day ago

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

Test on a genuinely low-end device, not just "budget Android"

2 days ago

The camera frame-rate issue only showed up on real hardware, never the emulator — worth keeping an even cheaper device i

Generalize sum-of-deltas merge into a small sync library

3 days ago

This conflict resolution approach would apply to any counter-style field, not just stock counts — could be extracted and

Merge offline stock edits as sum-of-deltas instead of last-write-wins

4 days ago

Two offline devices editing the same item silently overwrote each other under last-write-wins.

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

4 days ago

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

Standardize all local timestamps to UTC at write-time

7 days ago

Device-local timestamps would cause bugs once multiple devices' data gets synced against a shared server clock.

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

7 days 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

9 days ago

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