Migration recap · week of August 10 · 2026

The most valuable thing we shipped this week was restraint.

No flashy feature this week. Instead: one rabbit hole, two builds deliberately stopped before they shipped wrong, and a one-line lesson about merges that will save someone reading this a bad afternoon.

The rabbit hole first. Our documents — receipts, quotes, invoices — linked to a terms-and-conditions URL that didn’t exist. The obvious fix is a redirect rule, and ours deployed cleanly and did absolutely nothing: the platform’s core code answers that URL directly, so the redirect never gets a turn. The real fix was overriding the responsible controller to send visitors to the right page. But digging in surfaced something worse — our checkout was overwriting each order’s internal note field with a machine-formatted block destined for the legacy system, and that block was flowing downstream onto invoices as customer-visible “Terms & Conditions” text. Machine data and human notes now each have their own dedicated field, and the built-in behavior is back. The easy fix that lies quietly is worse than the hard fix you can see.

Now the restraint. A customer-facing account statement feature was requested, designed — and parked. Reconnaissance on the underlying data found due dates importing empty (making aging buckets impossible) and credit memos carrying positive amounts, which would inflate a customer’s balance instead of reducing it. A statement that confidently shows wrong numbers is worse than no statement. The feature waits until the data is right.

Same discipline, second target: the platform ships a built-in “quick reorder” panel, and before adopting it we read how it actually behaves. Six findings, including two that matter for wholesale customers: it scopes order history to the individual contact rather than the company account, and it displays prices at the single-unit tier no matter what quantity is on the line. Now the override can be designed around known behavior instead of discovered from complaints.

Smaller motions: a uniform product-image standard rolled across every surface that shows item lines — including invoice PDFs and one portal page that had no images at all, with the pleasant discovery that a single template edit covered two surfaces because one renders inside the other. And two new checkout payment methods — on-account for credit customers, wire transfer — are fully designed on the platform’s built-in mechanism with fail-loud credit checks, awaiting sign-off before build. Designed, not shipped; the distinction matters here.

And the one-liner: a merge this week quietly dropped a single import line, which took an entire endpoint offline in a test environment and surfaced as a completely unrelated-looking error. Tools that regenerate whole files — AI assistants included — will drop lines they don’t understand, and they will do it silently. Diff everything. Every line, every merge, no exceptions.

Weeks like this don’t demo well. They’re also where migrations are won.