Case Study · Internal Tool · Apple Watch Reseller

One screen to grade, label and route every watch.

A modern internal tool built around the bench — replacing a legacy PHP dashboard where every model was a dev ticket and every label printed one at a time.

Spec approved · Phase 1 in build
On the benchLabel out
Full catalog
Apple Watch depth
4 axes
Model · Size · Case · GPS/Cell
Bulk print
Queue → one ribbon
Legacy PHP
What it replaces
01The problem

The old flow was a sequence of waits.

Wait 01

One label at a time

Grade a unit, print its label, walk it over, come back, start the next. Repeat all day.

Print → walk → repeat
Wait 02

A dev ticket per model

A new Apple Watch release meant filing a ticket and waiting on a developer to add it to the catalog.

New model → wait on eng
Wait 03

Grading in a separate tab

The grading form lived apart from the catalog — copy the model, switch tabs, re-key it, switch back.

Tab → copy → tab

Nothing here was broken — it just made a fast pair of hands wait on slow software.

02What we built

Grade → label → print, on one screen.

Step 01

Scan or pick the model

Barcode scan or a two-tap picker. Recents keep the current model selected across units.

Step 02

Set the grade

Cosmetic + functional condition, captured inline. No tab switch, no re-keying.

Step 03

Print

One press. The label, inventory row and Amazon-listing fields all derive from a single record.

One record
unit_8412
ModelSeries 8Size45mmCaseAluminumConn.GPSGradeA
Printed label
SKU · grade · barcode
Derived
Inventory row
written automatically
Derived
Amazon-listing fields
ready for Phase 2
Derived

Enter the watch once. The label, the inventory, and the listing all fall out of one record.

03The catalog model

The whole Apple Watch line, as data.

×Model
SESeries 8Series 9UltraUltra 2+ legacy
×Size
40 / 41mm44 / 45mm49mm
×Case material
AluminumStainlessTitanium
×Connectivity
GPSGPS + Cellular
Variant space4 axes
New release = one config row, not a dev ticket

Model × size × case × connectivity. A new watch is a row the team adds themselves.

04Bulk print

Queue fifty. Print one ribbon.

Print queue50 units
Series 8 · 45mm · ALA
Series 9 · 41mm · SSA
Ultra 2 · 49mm · TiB
SE · 40mm · ALA
+ 46 more queued
AW8-45-AL-GPSA
AW9-41-SS-CELA
AWU2-49-TI-CELB
AWSE-40-AL-GPSA
one continuous ribbon

The slow part is the watches, not the software.

05What we did not build
A tool that makes the human faster — not one that replaces their judgment.
No mobile app
Grading happens at a desk with a barcode scanner. A Chromebook web app wins for this workflow.
No AI grading
Human eyes grade cosmetic condition better in v1. The tool makes the person faster — it doesn't replace the call.
No Amazon API yet
The fields are captured; the listing automation is Phase 2, scoped separately.
06Where it stands

Shipping carefully, on top of the old one.

Done
Spec approved
Scope and bench workflow signed off with the team.
Now
Phase 1 in build
Catalog seeded, grading screen scaffolded, printer wiring in test.
Safety
Old PHP keeps running
The legacy dashboard stays live until Phase 1 ships clean.
Phase 2
Amazon listing automation
Push the captured fields straight to live listings.
07Beyond one client

Any physical operation run on a legacy app nobody loves.

WarehousesRepair shopsRecruitmentInventory resellersLab work
Get started

A legacy app everyone tolerates and nobody loves?

We map your real bench workflow, find the part where good people wait on slow software, and tell you up front whether a modern tool is worth building.

Custom-scoped · no off-the-shelf pricing