[ Case study ]
Cafés reordered by voicemail, text, and memory; the roaster's production schedule guessed demand, urgent Friday voicemails became Monday-shipment apologies, and no account could see what it had actually ordered.
CLIENT a specialty coffee roaster with 60 wholesale accounts — FOCUS Four taps to a standing order
Representative examplesEvery case study in this library is an illustrative composite of the kind of engagement we deliver — written to show our method and standards, not to name clients.
Roasting for sixty wholesale cafés, this specialty roaster's week is built around a Thursday production cutoff that most of its accounts never quite make. Orders arrive as Friday voicemails, mid-rush text messages, and a standing-order email here and there; the office transcribes them into the production planning spreadsheet the head roaster owns. Café owners are baristas first — they reorder standing at the grinder between doses, from memory, at hours no office is staffed.
Cafés reordered by voicemail, text, and memory; the roaster's production schedule guessed demand, urgent Friday voicemails became Monday-shipment apologies, and no account could see what it had actually ordered.
We proposed a small React Native ordering app where a café's typical order is four taps — favorites and last-order reuse — and a half-finished order resumes instead of vanishing when the rush interrupts. Catalogs and pricing are scoped per account and enforced server-side, so no café ever sees another's terms. Orders land in the head roaster's production spreadsheet, in her columns, on her schedule: she keeps the tool she plans with and gains, for the first time, orders that are actually the demand.
Just as important is what we ruled out, and why:
Favorites plus last-order reuse mean a café's typical order is four taps, and a half-finished order resumes instead of vanishing.
Orders land in the production spreadsheet's exact columns on a schedule the roaster set, so planning keeps its tool and gains its data.
Account-scoped catalogs and pricing are enforced server-side, so one café's terms are never visible to another.
Delivered by the systems pod — engineer over 6 weeks, with working increments reviewed with the client every week.
Obstacle
The head roaster's spreadsheet was more machinery than a sheet: lookup formulas and a season-specific column arrangement broke the moment the export added a field she had not asked for.
Handled: We froze the column contract in writing, added a checksum row the export validates against, and any future change lands as a versioned option she approves before the schedule moves.
Obstacle
Adoption was immediate but behavior was not: the first month showed the same orders arriving through a new channel, still after the Thursday cutoff — the app had digitized the voicemail, not the timing.
Handled: We shipped cutoff push reminders with a one-tap repeat-last-order action, and made the post-cutoff state visible in-app so cafés could see what ordering late actually cost their delivery day.
The headline: all wholesale accounts onboarded to the app, with the production sheet populated from real orders — Voicemail → in-app reorders, read from Production-sheet change log. A second check: orders placed before the thursday production cutoff at +22%.
The wholesale manager's mornings stopped starting with voicemail triage, and production planning started from real orders instead of last season's memory — the head roaster now walks into Thursday with demand she did not have to reconstruct. Café owners reorder between doses in four taps and can settle an invoice argument with their own order history. The relationship shift is the quiet one: accounts that used to feel like a transcription burden now read as a live demand signal, and the roaster prices its season against evidence.
The result was read from Production-sheet change log against the pre-engagement baseline over the stated window, with a guardrail check on orders placed before the thursday production cutoff. Where platform-reported numbers and business outcomes differ, this record says which layer it is quoting.
What we would do differently
We would add push reminders for the cutoff from day one — adoption was fine, but timing moved only when the reminder shipped, and that was a month later than it should have been.
[ Related service ]
[ Related builds ]
Plastic cards Wallet passesAll active memberships issued as Wallet passes over the first renewal season, with gate scan time logged by the ticketing system
62% 89%Share of digital tickets validated offline-capable at first launch of the trial season, read from the operator's validation logs
[ Next step ]
Next case study