Burgee Labs
All work
Live2026Northern Lake George Boat Tours

Northern Lake George Boat Tours

A booking platform built from scratch for a family-run scenic boat tour in Hague, NY. Six weeks from kickoff to taking real bookings, on a stack chosen so the site costs about as much to run as the domain it lives on.

northernlakegeorgeboattours.com
northernlakegeorgeboattours.com
Northern Lake George Boat Tours website screenshot
Built in
6 weeks
Stack
Next.js · Supabase · Stripe
Running cost
Under $100 / yr
01

The brief

My mom runs scenic boat tours on the northern end of Lake George, NY. For the launch of the business she needed a real website that could take bookings online, handle payment, send confirmations, and let her manage all of it from a phone between tours.

Every other charter operator on the lake was using the same few template sites, or a bare booking widget bolted onto a page nobody had touched in years. We wanted hers to look like the business itself: her boat, her lake, her schedule.

The standard booking option for tour operators is FareHarbor. It is free to the operator, but it adds a visible 6% fee at checkout on top of the tour price. Building the checkout ourselves means customers stop seeing that fee. We still pay Stripe's standard processing rate either way, so the real win isn't a clean percentage saved: it's a flat, predictable running cost instead of a fee that scales with revenue forever.

02

What I built

Public booking flow

Five steps, from tour to date to time to guest details to review, running on a typed reducer so the state stays predictable. Availability is checked live against the boat schedule with a 30-minute buffer between tours.

Stripe Checkout

Hosted Stripe Checkout with a 30-minute session expiry. The webhook handler updates payment status idempotently and releases expired slots on its own.

Admin dashboard

Server-rendered pages for bookings, availability blocks, tour settings, and captain assignments. Built for a phone first, because that is where she actually uses it.

Self-service customer portal

Every booking gets a UUID management token, so customers can reschedule or cancel up to 48 hours before their tour without calling anyone. Cancellations refund through Stripe automatically.

Transactional email

Confirmations, admin notifications, cancellations, reschedules, and tour reminders through Resend, on plain HTML templates rather than a framework that would need maintaining.

SEO and open graph

Generated sitemap, robots.txt, an open graph image, and structured metadata aimed at the searches people make when booking a tour.

03

The outcome

The site is live and taking bookings. It runs on the free tiers of Vercel, Supabase, and Resend, so the annual cost is roughly the domain registration: under $100. Even if the business outgrows those tiers, the paid plans total about $45 a month, and that number stays flat. FareHarbor would have added about $15 to every booking at checkout, so at roughly 35 bookings a season the platform fee alone passes a full year of paid infrastructure.

She owns the code, the customer data, and the brand outright. If she adds a second boat or hires captains, the schema was designed for it already, and no platform gets to change the terms on her later.

Do you take bookings?

Reservations, appointments, tours, classes, anything on a schedule. I can build you the same thing, tuned to how your business runs.