Short write‑ups of problems we hit running a real commerce operation and what we changed in the code because of them. No product announcements; just the reasoning.
We built reply suggestions for the customer service chat inbox, set a goal of 60% close to what staff really sent, and spent ten days between 10 and 20%. Better writers, a critic, 23,000 past replies as examples and a coverage gate did not move the live number. We stopped. For a drafter that gets one shot, the technology at a cost that makes sense is not there yet, so the next attempt puts each staff member's own AI assistant on the conversation instead.
We read only the Gmail inbox, on purpose, and real customers were getting lost in Gmail spam. We now read the spam folder too. Rules clear most of it, a System One model sorts the rest for about four cents a month, anybody who has bought from us gets straight through, and nothing out of spam gets to open a file on its own.
We asked eBay for new orders forty thousand times a day to find about twenty. A customer still waited eighty minutes for one. Why checking more often was the wrong fix, what we did instead (check the channels that sell, and check the moment a customer comes looking), and the column we added so we can tell whether it worked. Results pending.
A label sheet is designed in a browser and printed by mPDF — two renderers that share no code and must agree to the millimetre. Where they disagreed, what happened when a barcode library quietly accepted an invalid EAN13 and encoded a different number than the digits printed under it, why the PDF thumbnails are rendered on the client, and the one Blade character that cost an afternoon.
The factory counts in units, the shop counts in boxes, and no amount of wishing makes 16 divide by 10. Rather than force one side to surrender, we named the exchange rate, converted at exactly two edges, and taught the system to say "one sealed box and six loose" out loud. Then we let small orders wait at the roadside until something bigger came past going the same way.
The factory still runs on paper: a tally per worker per task, totted up on Friday. The manufacture module that replaces it is built, tested, imported from the old system locally, and not yet on the floor. Part I is the model — artefacts, recipes as ordered tasks with raw materials per step, job orders that expand into a work queue, and a "task session" that is the single payable fact, with the pay rate frozen at the moment it closes — and the decision to make every product a trade unit first so a candle made on Tuesday can be sold online on Wednesday.