Skip to content
All work

Case study · iOS · Android · Web

Kupos

Bus tickets, transit-card top-ups and airport transfers across Chile — one booking flow powering three apps.

Role
Lead React & React Native Engineer
Platform
iOS · Android · Web
Timeline
2024 — Now
Impact
3 apps sharing one booking flow

01 — Context

Kupos is a ground-transport platform in Chile. Travellers search intercity bus routes, pick seats and pay — on the website, in the mobile apps, and at physical kiosks in bus terminals.

I joined in August 2024 to lead React and React Native development across those surfaces. The hard part wasn't any single app: it was keeping several products — Kupos, Allinbus and the Kiosk app — consistent while each needed its own features, without maintaining three copies of the most complex flow in the business.

02 — What I built

  • One booking flow, three apps

    Search, seat selection, passenger details and payment built once and reused across the Kupos, Allinbus and Kiosk apps with unified state management.

  • Transit-card recharge over NFC

    Topping up transit cards by tapping them on the phone — which meant going below React Native into platform-specific native modules.

  • Coupon system

    Promotions and discount codes end to end in the apps, from validating a code to applying it at checkout.

  • Airport transfers

    A new product line — booking transfers to and from the airport — shipped inside the existing apps.

  • Web booking on Next.js

    Features on the kupos.cl website that make online bus ticket booking seamless.

03 — How it's built

  • Redux and React Navigation for state and navigation, structured so the same booking screens drop into different app shells — improving usability and retention.
  • Native modules for hardware access like NFC, keeping the JavaScript side a thin, typed interface over the platform code.
  • One TypeScript codebase per surface, released to both the App Store and Google Play.
  • React Native
  • TypeScript
  • Redux
  • Recoil
  • React Navigation
  • Next.js
  • Firebase
  • NFC