All work

Northbound

A booking flow redesign for an independent walking-tour operator, cutting drop-off between 'select a date' and 'confirmed booking' by more than half.

Year
2023
Role
Product design & frontend development
Stack
Next.js, TypeScript, Stripe Checkout

The problem

The original booking flow asked for group size, then date, then a login, then payment details — four full page loads before a customer could actually pay. Analytics showed most people never made it past the login step, and there wasn’t a good reason for that step to exist at all.

What changed

I redesigned the flow as a single page with progressive disclosure: pick a tour, pick a date from real-time availability, pay. Account creation became optional and happens after payment, pre-filled from the booking, so it costs the customer nothing extra.

Details that mattered

  • Availability is fetched once and cached client-side for the session, so switching between dates feels instant instead of triggering a new request each time.
  • Form validation happens inline, field by field, rather than surfacing a wall of errors after submission.
  • The confirmation state is designed as carefully as the hero — it’s the last thing a customer sees before they close the tab, and it’s usually a screenshot they send to whoever they’re travelling with.

Outcome

Checkout completion rate rose from 34% to 79% of customers who reached the booking page, measured over the following two months.

Next project

Ledger