Case study2025

Public booking site for business & first class flights

A public website with real-time flight search

The client already had the engine — the Sabre-integrated flight search we'd built for them — but only their agents used it, through the CRM. We built the public storefront: a site where the end customer searches a New York–Tokyo business flight themselves, sees the real options at real prices, and starts the booking without calling anyone.

StackReactTypeScriptTanStack StartTailwind
RESULTS · BUSINESSLIVEBUSINESSNew York → Tokyo14h 05m · nonstopBoeing 777-300ER2 × 32 kg includedTOTAL / PASSENGER$3,940SELECTFlightPassengersPaymentConfirmation
Client
Travel agency · business and first class
Project type
Public website with real-time search
Our role
Front-end, integration, product design
Status
Delivered · live search working
The context

The engine existed. Only agents could use it.

The client already had the engine: the Sabre-integrated flight search backend we had built for them — access to public and private fares from hundreds of airlines. But it lived entirely inside the CRM, used only by agents.

The next step was the obvious one: open those same fares to the public. A site where an end customer searches a New York–Tokyo business flight themselves, sees the real options at real prices, and starts the booking — without calling an agent.

Built on top ofThe Sabre-integrated flight search engine
  • Real fares were reachable only by phone, through an agent
  • Every quote request consumed someone's time on the team
  • A raw GDS response is unreadable to an ordinary customer
  • A public site means an entirely different security model
They wanted anyone, anywhere, to see in seconds exactly the fares an agent sees — in a form a human can read, not a terminal.
What we built

The public storefront for an internal engine.

A site with a premium brand identity, matched to what's being sold: business and first class tickets, where the customer expects an experience worthy of the price. Behind it, the same fares the agent sees.

Visitor searches
Server + Sabre engine
Real itineraries

The search leaves from the server, not the browser. The key to the fare system never leaves that server.

What we delivered

Real-time flight search

The visitor enters origin, destination, dates and passengers and gets real results — not a static list. The site queries the search backend, which queries Sabre: real itineraries, at real prices, available at the moment of the search.

Results a customer can actually read

Airline name and logo, aircraft model, total duration, stops, included baggage and what the fare actually covers — in a flight card anyone can read.

The complete booking flow

The full path to completion: flight selection, passenger details, the payment page (card, Apple Pay, Google Pay) and confirmation — with a progress indicator showing the customer where they are. The flow is built and navigable; wiring in the payment processor is the next step.

Premium design, down to the details

Scroll animations, a destinations section, a layout that behaves properly on phone and desktop. The site has to say “business class” before the visitor sees the first price.

Security

The access keys never reach the browser.

The site never talks to the search backend from the visitor's browser. The query runs on the server, and the key to the fare system stays there and nowhere else.

A visitor inspecting the page source finds nothing they could use to query the system themselves. The difference between an internal engine used by authenticated agents and one exposed on the public internet is exactly this layer — and it can't be improvised after launch.

The query leaves from the server

The browser asks our server, the server asks the search engine. The visitor never sees the chain.

Nothing exploitable in the page source

Anyone reading the source finds no key and no endpoint they could use against the fare system.

Public doesn't mean exposed

The site is open to everyone; the fare system behind it is not.

Challenges

A GDS speaks in codes. The customer doesn't.

01

The raw response is unreadable to an ordinary human

What comes out of a reservation system is codes: airport codes, airline codes, aircraft codes, booking classes. An agent reads them after years of practice. A customer sees noise.

Challenges

The site translates them: airline name and logo, aircraft model, total duration, stops, included baggage and what the fare actually contains — in a flight card that reads at a glance.

02

The booking flow, built before the payments

A booking path that stops halfway — “search, then call us” — loses precisely the customer the site just convinced.

Challenges

We built the whole path: flight selection, passenger details, a payment page with card, Apple Pay and Google Pay, and confirmation, with a progress indicator throughout. It's navigable and ready; connecting the payment processor is the only step left.

03

It has to say “business class” before the first price

People buying first class judge the site before they judge the offer. A site that looks cheap makes the fare look expensive.

Challenges

A premium brand identity, scroll animations, a destinations section, and a layout that behaves as well on a phone as on a desktop. The experience matches the price on screen.

The outcome

The agent's fares, now in the customer's hands.

The client now has the public storefront for the search engine they only used internally: a site where anyone can search a business or first class flight and see the real options, at real prices, in seconds.

The rest of the booking journey is built and ready for the payment integration.

Live
Real Sabre results, at the moment of the search
0
Access keys that ever reach the browser
4
Steps in the flow: flight, passengers, payment, confirmation
3
Payment methods ready: card, Apple Pay, Google Pay

Got an internal system that deserves a public front door?

We build the storefront — including the layer that separates an internal engine from one exposed to the internet.