Fernloop
A checkout people actually finish
Service
Web platform
Duration
11 weeks
Year
2025
Stack
Next.js · Postgres · Stripe · Vercel
+48%
checkout conversion
−1.4 s
time to interactive
In one paragraph
Fernloop delivers groceries in six Canadian cities. We rebuilt a five-step checkout into one page that takes two taps with a saved card.
(04) — Case notes
The problem, what we built, and what changed. Numbers are from the client’s own analytics.
The problem
Fernloop’s checkout had grown one form at a time. Five steps, four page loads and a postal-code validator that rejected a third of real addresses. On mobile, 71% of the carts that reached checkout never finished.
What we built
One page. Saved addresses and cards, Apple Pay and Google Pay, and an address lookup that answers in 12 ms because it runs at the edge. Delivery slots load with the page instead of after it. We moved the whole flow to Next.js server components so the page is usable before the JavaScript arrives.
How we shipped it
The new flow ran behind a flag for three weeks with a 50/50 split. We watched conversion, refunds and support tickets daily, then rolled it to 100% on a Tuesday morning.
The result
Conversion rose from 3.1% to 4.6% over 90 days. Time to interactive dropped by 1.4 seconds on a mid-range Android phone. Support tickets about payment fell by half.
