Work
Two shops so far: the one we built our way out of, and the first one that asked us to do it for them.
A 60-year family drapery workroom: the founder's math, out of his head and onto the floor
The situation
Three generations, 30 to 40 work orders a week in season. Every ticket crossed the 74-year-old founder's desk for his red pen: the squared length, the cut, the pleat math. The software they paid per work order got cuts wrong by six to eight inches on expensive fabric, and the fix lived only on paper — a lost sheet was lost knowledge.
What we did
One recorded discovery visit, a 23-page scan of tickets and cheat sheets, the family's own spreadsheet, and about 45 work orders the founder read aloud into a recorder. From those: a rule book with every rule sourced and every gap numbered, then a web app — a job board, a work-order generator that shows the founder's math step by step, printable packets (master sheet, work orders, per-drape tags with barcodes), materials tracking, and a label printer.
The result so far
The engine reproduces 31 of 31 of the founder's real tickets, including four windows it had never seen. The shop cancelled its per-order software before the tool shipped, and the team's own improvement list — written after their first weeks in the app — became the next build sprint. Next: the founder's sign-off, and a parallel run beside his red pen.
"I'd love to be able to walk out of here at 2:00 or 3:00 in the afternoon sometimes."
CMA Signs: where the method came from
One hundred days from the first line of code to a shop running sales, production, shipping, collections and inventory on one system.
The situation
Every question in the shop ended at one desk: where's this job, what do we charge, when can it ship, did the acrylic come in. Three off-the-shelf apps were being retired, the price book was an Excel file emailed around, and the weekly totals were rebuilt by hand from the shipping workbook.
What was built
First code July 16, 2026. By the end of July: customers, CRM, quote builder, pricing and inventory on one database. August: production boards by work centre, panel check-in by name, hold first with a reason. September: a dashboard where every number opens its rows, the collections board, a floor TV. October: a customer quote-reply page, a ship-date estimator, receiving from the packing slip, value on the floor. 235 code changes in 100 days.
The one decision
One system, not more apps: a won quote becomes a job, the job's build sheet becomes its material list, the list becomes Tuesday's order, and nothing is retyped in between. And the board is the morning meeting — the 9:30 production meeting already walked jobs station by station, so the Hub put that meeting on a screen instead of inventing a new routine.
The team shaped it
Thirteen team requests on record shipped between July and October: the sales lead's quote numbering ("names are torture, numbers count the year"), his quotes-versus-sold formula copied into the scoreboard, his written ship-date rule shown beside history; the production leads' check-in by name with no logins, rework with a reason, hold first; the designer's build sheet read as-is instead of a new form. The screens use the rules the shop already had.
Numbers from the build
- 672 materials moved out of a spreadsheet into the system. 142 were already below par on day one.
- The whole rate book out of Excel: 15 product lines, 137 rates, 33 add-ons, 20 rules.
- First team walkthrough July 29. Its punch list was built the same day.
- 235 code changes in 100 days.
Screens show demo data. The layouts are the ones the shop runs on.