DirtyBoat: The Name, The Boat, The Codebase
How DirtyBoat became a 42 foot Custom Liberty Express at Robbie's, and why the booking engine looks nothing like a template.
Kit Mobley
Islamorada, FL

What DirtyBoat actually is
DirtyBoat is my charter operation out of Robbie’s Marina, Mile Marker 77.5, Islamorada. The current boat, DirtyBoat 2.0, is a 42 foot Custom Liberty Express, full tournament rigged, offshore only. No backcountry, no flats, no bridge fishing. If you want to poke around Florida Bay for redfish, I am not your captain. If you want to run 20 miles out and put a marlin in the spread, we should talk.
The name gets asked about more than the fish. So here it is, plain: the original DirtyBoat was a 1995 32 foot Blackfin Combi Express. Joe Sabe bought it. The plan was to rename it, because you rename boats, that is what you do. A few charters in, everyone was already calling it DirtyBoat. The name stuck. We stopped fighting it. Ten years later it is a brand.
DirtyBoat is one word. Capital D, capital B. I get emails from marketing people who type it “Dirty Boat” and I quietly correct them. It matters because the domain is dirtyboat.com and search engines are literal.
Why the boat runs offshore only
There is a business reason and a boat reason.
The business reason is that Islamorada has more good backcountry guides than it has good offshore captains willing to run a real program. Backcountry is a skiff game. It is a different license class of skill, different tackle, different water. I am not going to half-do it and take money from a guide who lives that water every day. The Islamorada Charterboat Association board I sit on is full of captains who specialize, and specialization is why the fleet has the reputation it has.
The boat reason is that a 42 foot Custom Liberty Express is not a flats boat. It is a fuel-burning, tower-equipped, tournament-rigged offshore machine. Putting that hull in two feet of water to chase tarpon at a bridge is malpractice. She wants blue water.
So the site says offshore only, the phone script says offshore only, and the AI booking agent says offshore only. When someone asks about tarpon at Bahia Honda, we hand them a name. Usually a couple of names.
The booking engine, briefly
Most charter captains I know either take bookings through FareHarbor (fine, takes a cut, works) or through a phone number and a text thread (also fine, until you miss three messages during a slow troll). I run something different for DirtyBoat because I could.
The stack:
- Astro on the frontend, static where it can be, dynamic where it has to be
- Supabase for booking data, availability, customer records
- Stripe direct for deposits and full payments, no middleman percentage
- Anthropic Claude powering an AI agent that answers pre-booking questions on the site
- SendGrid for confirmations
- Netlify for hosting
The AI agent knows the boat’s specs, knows we are offshore only, knows seasons for sailfish versus dolphin versus tuna, knows I do not fish Sundays half the year, and knows to hand off to text if the question is real. It does not try to close bookings itself. That still comes through Stripe and a confirmation from me.
The point of all that is not the tech. The point is that FareHarbor takes roughly 6% and does not know the boat. Stripe takes 2.9% plus 30 cents and does exactly what I tell it. Over a season, that difference pays for the whole build twice.
What DirtyBoat taught me about client work
Every website I build for another Florida Keys business (Big Beard Boats, Miss Penny Charters, Islamorada Luxe, Hungry Tarpon, Heeter’s Custom Pools, Just Cuz Fishing, S.A.F.E., Robbie’s itself) benefits from the fact that I run a charter operation. I know what it feels like when the phone rings while you are gaffing a fish. I know that captains do not want to log into a CMS on Tuesday to update Wednesday’s availability. I know that a booking form with 14 fields is a booking form that loses bookings.
The pattern I keep coming back to:
Static where you can. If the content changes once a month, do not run a database for it. Astro renders a page, Netlify serves it, done. The site loads on a 4G signal at Alligator Reef.
Dynamic where the money is. Bookings are money. Availability is money. Customer records are money. Those go in Supabase with real backups. The About page does not.
Payments direct. Every dollar that moves through a middleman is a dollar you are renting. For a small operator, that adds up fast.
Text over email. Captains live on text. Confirmations should text. Reminders should text. Any interface that assumes the operator is checking email between 9 and 5 was built by someone who has never worked outdoors.
Robbie’s, S.A.F.E., and why the DirtyBoat slip matters
DirtyBoat’s slip at Robbie’s is not incidental. Robbie’s is the Keys’ most-visited marina, roughly 200,000 to 300,000 walk-through visitors a year depending on how you count, and I have been the webmaster there since 2016. The affiliate network I built has moved north of $7.1 million in online booking revenue for the fleet since we started. DirtyBoat runs inside that ecosystem: my slip is 20 feet from Hungry Tarpon, 40 feet from the tarpon feeding dock, and about 100 feet from the FareHarbor kiosk that sends me business when I am blocked out on my own calendar.
I also serve as Vice President of S.A.F.E. (South Atlantic Fishing Environmentalists), 460+ members. Conservation is not a marketing angle for a charter operation in the Keys. If the reefs die, the business dies. If the sailfish migration shifts, the calendar shifts. The site at safefishing.org runs on Astro and Supabase for the same reasons DirtyBoat’s does: it needs to be cheap to run, fast on a phone at a boat ramp, and honest about who is a member.
Booking DirtyBoat, or asking about the code
Charter inquiries for DirtyBoat go to (305) 209-5594. That is the boat line.
Web development inquiries (including from captains who want their own booking engine that does not rent them out to a marketplace) go to (954) 682-9551. Text is faster than calling. I am usually on the water Monday through Saturday.
Office hours for the dev work are 8am to 6pm Monday through Friday, and 9am to 2pm on Saturday, which really means whenever the last charter clears the dock.
The email for either is km@kitmobley.com. Say which hat you want me wearing, and I will answer in kind.
SHARE THIS POST