Decision 01
Measure on real hardware before changing anything.
We bought three mid-range Android phones and tested on them. Everything that followed came from what those devices showed, not from a desktop profile.
TradeoffTwo weeks of the engagement produced a document, not a feature.
Decision 02
Server-render the checkout.
The payment step needed almost no client-side state. Moving it to the server removed almost all of the wait before the page became usable.
TradeoffA different rendering path from the rest of the storefront, documented and fenced.
Decision 03
Make failed payments recoverable.
An idempotent retry with a clear error message recovered a meaningful share of sessions that had previously just ended.
TradeoffMore states to design and test than the original single happy path.