Notes from production work — the migrations, the failure modes, and the decisions we would make again.
Shopify Functions cover most of what checkout.liquid used to do, but the mapping is not one to one. Here is how we sequence the migration so discounts never go dark in production.
Read the post →Handing a model the full Admin API is the fastest way to an incident. A note on designing tool surfaces narrow enough to be safe and wide enough to be useful.
Read →The interesting design question is not whether a human approves, but what they see when they do. Notes from building approval queues people actually read.
Read →A budget nobody can override gets removed. A budget anyone can override does nothing. What we run in CI instead.
Read →If one of these is the problem in front of you, skip the post and just ask us.