← Work

Private Booking & Operations Platform

Custom booking software for a charter business: a seven-step customer flow with live availability and pricing, built on a locked-down data model, with the operations layer designed to match.

App & Software DevelopmentBookingPaymentsAI conciergeOperations automation
Operations · Dashboard
Operations dashboard concept
Design concept
Step 7 · Review & price
Review step with subtotal, add-ons, trip insurance, tax and total
Production build
Date and time step on a phone
Client
Private · withheld
What we built
Booking web app
Stack
Next.js · TypeScript · Supabase
Data
14 tables, row-level security
Customer flow
7 steps
The customer flow · production build

From picking a date to the final price.

Step 2 · Date & time
Booking step
Production build · demo data
Under the hood

The parts customers never see.

Availability engine

Remaining capacity per slot is the tour's capacity minus guests already booked, with a timezone-correct booking cutoff.

capacity − Σ guest_count

Pricing engine

One pure function handles per-person and flat-plus tours, per-person and per-unit add-ons, optional insurance and tax.

lib/pricing.ts

Locked-down data

Fourteen tables with row-level security, denied by default. An append-only audit log. Waiver versions can't change once active.

RLS · default deny

Type safety

Strict TypeScript with no any, Zod validation on every API shape, and a server-only guard on the privileged database client.

strict · zod · server-only
Behind the funnel · design concepts

Payments, waivers, operations and an AI concierge.

Concept screens for the operations layer, drawn in the production design system.

Mobile

Built for booking from a phone.

Every step of the flow works in a single column at phone width.

Date and time on a phone
Review and price on a phone
About these screensThe client's name and identifying details are withheld. Screens marked "Production build" come from the running application with demo data. Screens marked "Design concept" show the operations layer in the same design system.