Custom booking engine
Hourly, captained and drop-off rentals run through one engine with live availability, timed holds on a chosen slot and a database check that blocks double bookings.
SELECTED WORK / BOAT RENTALS
St. Joseph, Michigan
A new website and a custom booking platform for pontoon rentals on Lake Michigan, from hourly harbor rentals to delivery on 45 inland lakes.
Visit live website (opens in a new tab)Explore the project
THE PROJECT
St. Joseph Boat Rentals runs pontoon rentals from the St. Joseph harbor on Lake Michigan. Guests can take a boat out by the hour, add a licensed captain, or have a pontoon delivered to a lake house on one of 45 inland lakes across Berrien, Cass, Van Buren and St. Joseph counties.
The old WordPress site had a separate booking page for every rental length. We designed and built a new website and a custom booking platform behind it: customers check availability, choose a boat, sign their paperwork and pay online, and the team runs bookings, the fleet and deliveries from one admin.
DESIGN STRATEGY
We built the look around a calm morning on Lake Michigan: cream backgrounds, deep navy and a lake-teal accent, with moving water under every hero. A live, GPU-drawn water surface rolls from each hero into the page.
The rest of the design stays out of the way of booking. Prices, delivery fees and what’s included sit on the cards, “Book a boat” is always in the navigation, and the booking flow asks for one decision per step, with a calendar that marks each day’s price tier.
TYPOGRAPHY
Playfair Display for headlines, with one italic accent word, and Inter for everything people read or tap.
COLOR
Cream, navy and Lake Michigan teal, with a warm orange kept for the booking flow’s next-step button.
MOTION
A WebGL water surface, gentle scroll reveals and a desktop-only hero film, all of which stop for visitors who prefer reduced motion.
HOW IT’S BUILT
The website and the booking platform share one Next.js and TypeScript codebase. Bookings, boats and lakes live in PostgreSQL, payments run through Stripe on the client’s own account, and email and texts go out through Amazon SES and Twilio. Scheduled AWS Lambda jobs send reminders and follow-ups.
A rule in the database rejects overlapping bookings, so the same boat can never be sold twice for the same time, even when two customers check out at once.
SEARCH, BUILT IN
The move from WordPress kept what the business had built in search, and the new platform gives each delivery lake a page of its own.
We kept the old site’s content addresses, including its lake pages and blog posts, and added 70 permanent redirects, most of them sending retired booking pages to the matching option in the new booking flow.
One lake-page template reads the booking system’s lake list, so each of the 45 delivery lakes has a page with delivery fees, the boats available, a local write-up, FAQs and links to nearby lakes.
Every page carries structured data for the business, and Service, FAQ, breadcrumb and blog-post markup appear on the pages they describe.
The sitemap and an llms.txt file for AI tools are generated from the same live data as the pages, so new lakes and posts appear in both automatically.
Pages are server-rendered with preloaded fonts, and the hero film loads only on larger screens, so phones get the page without downloading it.

THE SAME WEBSITE. A SMALLER SCREEN.
PROJECT HIGHLIGHTS
Hourly, captained and drop-off rentals run through one engine with live availability, timed holds on a chosen slot and a database check that blocks double bookings.
One template turns the booking system’s lake list into a page for each of the 45 delivery lakes, with fees, boats and FAQs.
Customers sign their waiver and upload ID online, before paying or afterwards in a customer portal, depending on the owner’s settings.
KEEP EXPLORING
Custom websites, online stores and software built around your business.
A website designed and built around your services and your customers.
Online stores with clear product pages, simple checkout and the integrations you need.
Technical fixes, content and local search that help customers find you.
Your Google Business Profile and local listings, set up for nearby customers.
What clients say about working with our team.
YOUR NEXT WEBSITE
Let’s talk about your business, your customers and what your website needs to do.