← All work

Case study · Georgian Bay Ferries · 2023

Georgian Bay Ferries Booking

A rebuilt ticketing flow for a seasonal ferry operator, designed for patchy dockside signal and a summer rush of day-trippers.

Role
Senior Frontend Engineer
Client
Georgian Bay Ferries
Year
2023
Duration
7 months
Developer typing on a laptop with lines of code visible on the screen
Building against a throttled 3G profile for most of the project.

01

The problem

Georgian Bay Ferries sells most of its tickets in July and August, mostly from phones, often on a dock with one bar of signal. The old booking flow took six screens, reloaded the page between steps and lost the cart whenever the connection dropped.

Fewer than half of mobile visitors who started a booking finished one, and the support inbox filled with duplicate-charge worries every long weekend.

02

The approach

  1. 01

    Sit with the people booking

    Two days at the Tobermory terminal with the studio's designers, watching real passengers try to buy tickets, shaped the whole flow before any wireframe existed.

  2. 02

    One screen, progressive steps

    Date, party and vehicle sit on a single screen that updates availability inline. State is persisted locally, so a dropped connection resumes exactly where it stopped.

  3. 03

    Fast by budget

    A 90 KB JavaScript budget for the booking route, enforced in CI. The seat map was replaced by a plain capacity bar, which was both lighter and clearer.

  4. 04

    Idempotent payments

    Each checkout carries an idempotency key, so retries on a bad connection can never charge a passenger twice.

Hand sketching a mobile app wireframe on a whiteboard with a marker
Booking flow sketches from the first terminal-visit debrief.

03

The outcome

The new flow went live in May and handled its first 18,000-booking weekend in August without a support escalation.

41% → 63%
mobile checkout completion
6:10 → 2:20
median time to book
4.8s → 1.6s
largest contentful paint on 4G

04

The stack

  • Next.js
  • TypeScript
  • GraphQL
  • Stripe
  • Playwright
  • Lighthouse CI
Next project · 2022Kestrel Grid Console

12 results

Made with Supacode