Saturday, June 20, 2026
mood: shipping
Good, better, best — let the customer pick the size of the yes.
Built a tiered-estimate feature for the gasket business off a real customer request, and shipped a small study tool to help me learn the trade itself.
Shipped
- Three-tier estimates, built — a customer asked for three quotes off one inspection: only what's needed, needed plus the questionable ones, and everything. Built the whole stack for it, test-first — the tech marks each door yes / maybe / no, and the system prices three nested estimates from the same walk. Proved the engine produces three genuinely different totals
- Profile-drill quiz, live in production — shipped a flashcard / spaced-repetition trainer at chicagogasketservice.com/profiles/quiz so I can drill identifying gasket profiles cold. The trade has reps I can't shortcut, so I built the tool to put them in
- Delete an estimate — added a safe way to remove a draft estimate, with a guard that refuses to delete anything already sent or approved
- Work-from-anywhere dev setup — wired up a secure path to drive my build environment from my phone over a private network, so I can keep shipping while away from the desk
- Mapped the path to real jobs — laid out the five milestones between "the gasket app works" and "I can take a paid gasket job solo." The honest bottleneck isn't code — it's hands-on reps at welding and installs, which are gated by real field time, not shipping speed
Notes
The three-tier feature taught me to read what the engine already allows before designing new structure. Underneath, the database already permitted many estimates per job and the pricing already keyed off a single per-door flag — so the "feature" was mostly a tier label and a door-selection filter over machinery that was already there. The honest design was small. The trap I caught: my first cut of the pricing change quietly clobbered an earlier fix, and only a regression test from a week ago saved it.
