Skip to main content
QuantLab Logo
E-commerce / Marine2026·8 weeks

Stripe Connect booking + crew assignment for a yacht charter ops team

A custom booking platform with Stripe Connect crew payouts, deposit-then-charge billing, Twilio SMS notifications, and a customer portal — built so a yacht-charter ops team could stop running its calendar on text messages and start protecting its bookings with deposits.

Client: Coastal Yacht Services
35% increase in booking conversions
Zero double-bookings post-launch
$180K incremental first-year revenue
Cut admin time by 60%

The Situation

Coastal Yacht Services operates a fleet of charter yachts along the southeastern US coast, running half-day, full-day, and multi-day trips for private parties, corporate events, and weddings. Reservations had been booked by phone and text and tracked on a shared Google Calendar maintained by the office manager. Crews — captains, deckhands, and stewards — were assigned the night before by group text, with payouts handled in cash or Venmo at the end of each charter. The operation lost bookings because there was no deposit mechanism, double-booked dates because the calendar was edited from three different phones, and chronically underpaid crew because tracking who worked which trip lived in screenshots. Repeat customers had no way to rebook themselves; every reservation went through the same phone tree.

The Challenge

The team needed a booking flow that captured a refundable deposit at reservation time and the balance on the day of the charter, a Stripe Connect arrangement so crew could be paid out to their own connected accounts the day after a trip cleared, an SMS notification layer so customers and crew got reminders without the office manager texting each one by hand, and a calendar UX that made double-booking structurally impossible. The platform also had to handle weather-related rescheduling without manual refund processing.

Our Approach

QuantLab spent the first week shadowing the office manager and one captain through a full booking lifecycle — from initial inquiry through crew assignment, customer arrival, and payout. We then designed the platform around a deposit-then-charge Stripe model with Standard Connect accounts for crew, a calendar built on Postgres exclusion constraints to prevent overlapping reservations at the database level, and a Twilio SMS pipeline triggered by booking, payment, and assignment events. The customer portal was kept intentionally narrow — book a charter, view your reservations, reschedule if weather cancels — so the office team stayed in control of edge cases.

What We Built

  • Custom booking platform with calendar UX and Postgres-level overlap protection
  • Stripe Connect Standard accounts for crew payouts cleared the day after each charter
  • Deposit-then-charge billing — refundable deposit at reservation, balance on charter day
  • Twilio SMS notifications for booking confirmations, crew assignments, and pre-charter reminders
  • Crew assignment workflow with per-trip role tagging (captain, deckhand, steward)
  • Customer portal for self-service rebooking and weather-related rescheduling

Tech Stack

Next.js 16Stripe ConnectTwilio SMSPostgreSQLResendVercel

The Outcome

Booking conversions jumped about thirty-five percent in the first quarter post-launch, largely because the deposit step weeded out tire-kickers while the streamlined flow closed serious customers faster. Double-bookings went to zero — the database constraint made overlapping reservations structurally impossible. Crew payouts moved to next-day automatic disbursement, ending the cash-and-Venmo workflow. The office manager's admin time dropped by roughly sixty percent, and the operation booked an estimated $180K in incremental first-year revenue that would previously have been lost to slow callbacks and unsecured holds.

Like to know more about this project? Talk to William.

Have a similar problem? Let's talk.

Tell us what you're dealing with. We'll be honest about whether we can help.