Skip to content
← All work

Web & API development · 2026 – present

The Departure Club

A reward-flight search engine that assembles complete itineraries out of award seats and paid positioning flights, sold as a subscription. Live, and still shipping.

Visit the live product

route strategies per search
10route strategies per search
airports, five continents
200+airports, five continents
searchable in one query
15 dayssearchable in one query
01

What I walked into

Booking long-haul award travel out of Australia is a research project. Award seats are scattered across airline programmes, they rarely line up end to end, and the gaps have to be filled with paid flights bought separately. People who are good at this do it by hand across a dozen browser tabs.

The client wanted to sell that expertise as a product. Not a guide that points you elsewhere. A tool that builds the whole trip. As they put it mid-project: if it cannot build the entire itinerary, it is no better than searching yourself.

02

What I did about it

The core is a cascade search engine that runs up to ten route strategies per query: direct, via South-East Asian hubs, via Pacific hubs, and hybrid combinations that mix reward legs with paid positioning flights. Every candidate itinerary is scored and ranked on total points, cash outlay and reward percentage, so the best value surfaces without the user needing to understand any of the machinery.

Award availability comes from one partner API and live cash fares from another. Getting those two to agree is most of the actual work: taxes arrive in whatever currency the origin country uses and have to be normalised to AUD, cabin rules differ between reward and paid legs, and overnight routings used to roll dates backwards until the date handling was rebuilt from scratch.

The cash-fare provider is rate limited, so that integration runs throttled at two concurrent requests with paced batching, three retries on 429 with exponential backoff and jitter, and a 30-minute cache that deliberately does not cache failures. An earlier version cached rate-limit errors and then served them back for half an hour.

Around the engine sits an ordinary but complete SaaS: email authentication, monthly and annual subscription billing, saved favourites, replayable search history, and row-level security on every table so no account can ever read another's data.

It is still shipping. The current phase replaces "cheapest option per leg" with every plausible option, because a trip builder that quietly chooses for you is just a guide, and the client was right that a guide is not worth paying for.