Skip to content
achacon.dev
All work

2026

QR-driven warehouse inventory

Live inventory across five storage units, tracked by scanning a QR code on every box.

Role
Sole engineer: architecture, front end, API, database
Stack
TypeScriptReactViteTailwindSupabase PostgresRealtime subscriptionsCloudflare WorkersMapboxVitest
  1. Trigger: 01Box scannedQR read in the van or at the door
  2. Process: 02Worker APIValidates the scan, resolves the box
  3. Store: 03PostgresState written to the system of record
  4. Output: 04Realtime fan-outEvery open client updates at once
  5. Output: 05Stock adjustedLine items decrement automatically
One scan updates every client that has the app open.

The problem

Stock lived across five separate storage units with no system of record. Answering what was in which unit, or where a box had ended up mid-move, meant walking the floor and asking whoever was around.

What I built

  • Every box gets a QR label, and a scan is the only interaction the job requires. Scanning in the van marks the box In Transit. Scanning on arrival records the warehouse and the room it landed in.
  • Postgres is the system of record. Realtime subscriptions push each state change out to every connected user at once, which is why nobody has to refresh to get a current count.
  • Removing a box deducts its line items automatically. Stock levels follow what is physically on the shelf rather than what someone last typed into a spreadsheet.
  • The API is a separate Cloudflare Worker, with a companion bot Worker alongside it. Integration surface stays out of the client app.
  • Dashboards and exports over the item history: sortable tables, charts, and generated PDFs.