Client WorkReactStripePrototype

The Nineteenth

An end-to-end prototype for a golf travel platform. Itinerary builder, dynamic pricing and group payments through Stripe.

2025·Design and development·View live
Landing, positioned as curation, not a booking aggregator

Landing, positioned as curation, not a booking aggregator

Outcome

Delivered as a funded prototype and now in use to close an angel round. Phase 2 (live API integrations, production Stripe, more destinations) is scoped. It proved the thesis: the whole golf trip booking flow can be digitised without feeling like a travel aggregator.

4

Pre-seeded destinations

5

Dynamic pricing line items

25%

Stripe deposit checkout

Group

Payments via share links

Birdie, the concierge layer, never labelled as AI

Birdie, the concierge layer, never labelled as AI

Destination picker with pre-seeded trip templates

Destination picker with pre-seeded trip templates

Flight selection, priced as a line item, not a bundle

Flight selection, priced as a line item, not a bundle

Add-ons: caddies, buggies, club hire and extra rounds

Add-ons: caddies, buggies, club hire and extra rounds

Itinerary totals dynamically as components are added

Itinerary totals dynamically as components are added

Booking confirmed. 25% Stripe deposit and group share link

Booking confirmed. 25% Stripe deposit and group share link

Design decisions

01

One trip, not three bookings

Golf travel sells as fixed packages, which collapse the moment a group is nine instead of eight or two people want an extra round. I modelled the trip as components (flights, hotels, tee times, transfers, add-ons) that price individually and total live. That one call defined the itinerary builder, the checkout and the Stripe line items.

02

Never say AI

There is an AI itinerary builder underneath, and every instinct in 2025 was to badge it. The client's positioning was expert curation, and a chatbot label would have made a considered trip feel auto-generated. Birdie is presented as a concierge with no AI language anywhere in the interface. Strategically it was the most significant decision in the project.

03

Deposit now, settle the group later

Asking one golfer to front an entire group trip is where booking flows die. A 25% Stripe deposit gets the trip committed, and a share link lets the rest of the group pay their own portion afterwards, so the organiser is never out of pocket and never chasing bank transfers.

04

Price moves as you build

If the total only appears at checkout, every add-on feels like a risk and people stop exploring. The itinerary totals in view as components go in, which is what makes the three-minute claim survive contact with a real group. Building in Bolt meant single-scope instructions and a screenshot after every change to catch visual drift before it compounded.

Process

I modelled the trip as one composable product rather than a bundled package. Flights, hotels, tee times, transfers and add-ons price as components and total live, because fixed packages fall apart the moment group sizes or extras change. That shaped the itinerary builder, the checkout and the Stripe line items. I also stripped every mention of AI from the interface. There is an AI itinerary builder underneath, but the positioning was expert curation rather than a chatbot, and that turned out to be the most strategic call in the project. Built in Bolt, which meant tight single-scope instructions and a screenshot after every change to catch drift early.

Context

Golf travel is a $26bn market still running on manual enquiries and week-long quotes. The client was raising an angel round and needed proof that one golfer could build, price and book a full group trip in under three minutes with no agent. Nothing on the market treated a golf trip as one product rather than three separate bookings.