MEATMASTER / OFFLINE-FIRST COUNTER TOOL
Built for the cooler. Not the boardroom.
An offline phone app a working meat-counter clerk built with AI, using real shift data, to replace cardboard and paper lists.
TODAY’S COUNTER
SCAN → PLU MATCHED
✓
Production list ready
Case refill worksheet ready
Pull today | Mark down tomorrow
01 / THE REAL PROBLEM
A frontline worker out-engineered the problem with a phone.
Daily spot-checks, production, refills, and markdowns were already a system. It just lived on cardboard and a paper list. The app was shaped by the real constraints: a phone is the only device, the cooler has no signal, and the store’s locked-down inventory system should not be touched.
MeatMaster is a paper-speed bridge, not a data pipe. Its output matches the existing entry screen one-to-one, avoiding double entry and avoiding job risk. Building it was also the point: a practical way to learn how to ship a genuinely complex project with AI as a pair, not a vending machine.
02 / CAPTURE ONCE, INFER EVERYTHING
One fact becomes the workday.
A pack date is not just a date. Once captured and confirmed, it can power expiry, what to pull, the pull order, and the route through the case. The human confirms; the app does the arithmetic.
CAPTURED FACT
PACK DATE
→
EXPIRY
PULL ORDER
WALK ROUTE
CASE PLACEMENT
03 / THE DAILY WORKFLOW
The phone does the remembering.
Scan a package and the app names the product while recording the count. The morning list scales recipes into a per-day cooking playlist. The case worksheet manages refills for marinated cuts, wings, kabobs, and salmon. Sell-by logic keeps one simple rhythm: pull today’s date, mark down tomorrow’s.
Reference decks turn the counter into a map: a paged case layout, a garnish walk order, and a one-pan meal library. The point is a workday that stays at paper speed, with fewer things to hold in your head.
04 / THE CLEVER ENGINEERING
Reliability wins when you’re standing in a walk-in.
OFFLINE FIRST | NO BUILD STEP
Plain HTML, CSS, and JavaScript with no framework, bundler, or server. A service worker precaches the app shell so it works in a dead-signal cooler. Update-on-load and controller-change reload fixed a real failure: an installed app stuck on an old version for days.
BARCODE ENGINE | ZBAR, NOT ZXING
Variable-weight scale labels use GS1 DataBar, which the first library could not see. zbar-wasm decodes DataBar plus UPC/EAN at any rotation, and an Otsu-threshold fallback rescues glare and low-contrast photos. EAN-13 price fingerprints enable exact package matching and duplicate-scan detection.
DATA THAT PROVES ITSELF
The 66-page manual became machine-readable input: recipe cards, ingredients, steps, and photos were extracted without hand typing. A per-page column-boundary method repaired the manual’s shifting two-column step layout. Ingredient totals validated themselves against yield: 28 of 28 matched.
DERIVED DATA | HARD BOUNDARIES
Integer date triples avoid timezone drift and enforce a plausibility gate for future OCR. The case map is the source of truth for garnish walks and refill lists, so one fix re-sorts everything downstream. Every new feature lives in a self-contained module that cannot corrupt a live count.
05 / BOSS FIGHTS, PROOF, AND NEXT
Every awkward constraint became a rule worth keeping.
A scanner library that could not read DataBar was replaced. Glare and curved labels got a threshold fallback. A hosting quirk that dropped WebAssembly files became a guarded one-file rule. Two-column PDFs got page-specific parsing. Date math moved to integers. Two AI coding agents sharing a repo got strict handoff and version discipline. The honest platform limit remains: pure iOS web apps cannot supply the haptics that would be nice here, so the limitation is documented rather than faked.
FULLY OFFLINE
0 LINES TYPED
28 / 28 VALIDATED
FORMULA | 0 FAILURES
NEXT | BARCODE-ANCHORED OCR + FORECASTING
The next scanner step uses barcode corners to locate and de-rotate sell-by date crops, then routes the read through the existing plausibility gate. Barcode decode stays decoupled from slower OCR so the working scanner stays instant. Logged counts can then support consumption-based reordering and production forecasting.
A frontline worker built real software for the work in front of them. That is the whole point.