HomeAboutWorkServicesPluginsMonitorBlogContactstart_a_build
Florida Keys· 6 min read

DirtyBoat: What the Name Runs On

DirtyBoat is a 42 foot Custom Liberty Express out of Robbie's at MM 77.5. Here is the operation behind the name and the code that keeps it booked.

KM

Kit Mobley

Islamorada, FL

DirtyBoat: What the Name Runs On

The name people search for

DirtyBoat gets typed into Google a lot more than you would think for a boat that never intended to be branded.

The original was a 1995 32 foot Blackfin Combi Express that Joe Sabe bought. He was going to rename it. He never got around to it, ran a few charters under the old paint, and by the time the new name was ready the customers were already asking for “the dirty boat.” That was the rename. It stuck harder than any marketing plan would have.

I run DirtyBoat 2.0 now. Same name, different hull. A 42 foot Custom Liberty Express, full tournament rigged, slipped at Robbie’s Marina at Mile Marker 77.5 in Islamorada. If you have ever pulled off US-1 to feed the tarpon, you have walked past her.

What the boat actually does

Offshore only. That is the whole operating philosophy.

We do not fish the backcountry. We do not fish Florida Bay, the bridges, or the flats. If you want a poling skiff and a tailing bonefish at dawn, I have friends I will send you to. What DirtyBoat does is run the Gulf Stream edge, the humps, the wrecks, and the reef line for sailfish, mahi, tuna, wahoo, snapper, grouper, and the occasional marlin that shows up and rearranges everyone’s day.

The 42 Liberty was built for that job. Fuel range to reach the humps without a math problem. Deck space for four anglers to fight fish without stepping on each other. A tower that lets me spot color changes and weed lines from a half mile out.

The reason I mention any of this on a web dev blog is that the same customer who searches “dirtyboat” is often searching from a phone in a hotel at MM 82, at 9pm, deciding what to do tomorrow. If the site does not load, does not show availability, and does not take a deposit in under two minutes, the booking goes to whoever’s site does.

The booking engine behind the name

DirtyBoat’s booking flow is custom. Not FareHarbor, not Xola, not a Wix widget. Astro on the front, Supabase and Postgres holding the reservations, Stripe processing deposits, SendGrid firing the confirmations. Hosted on Netlify. An Anthropic-powered agent handles the pre-booking questions that used to eat my afternoons: “do you provide rods,” “can we bring beer,” “what happens if the weather is bad,” “is there a bathroom.”

The agent has the calendar. It knows which dates are open, which are booked, and which are held for tournaments. When someone is ready to book, it hands them off to the Stripe checkout with the date and trip type prefilled. When the deposit clears, the confirmation email goes out and the calendar updates in the same request.

I built it this way because FareHarbor takes a cut, and because I wanted the customer talking to the boat, not to a third-party interface. Robbie’s Marina, which I have been the webmaster for since 2016, uses FareHarbor for the affiliate network. That partnership has moved north of $7.1 million in online revenue since 2016, so I have nothing bad to say about it. It is the right tool for a marina with fifty operators on the dock. It is the wrong tool for a single boat that wants to keep the whole margin.

Why “dirtyboat” as a search term matters

Fifteen impressions in sixty days is not a flood. It is a signal.

People who type “dirtyboat” into Google already know the name. They are not browsing. They are trying to find us again, or they heard about the boat from a friend at the Hungry Tarpon and want to see if it is real. Those are the highest-intent searches on the internet. They convert at rates that generic “islamorada fishing charter” searches never touch.

The problem, if there is one, is that Google was ranking me at position 8.9 for my own boat’s name. Position 8.9 means the customer scrolls past a FareHarbor listing, a TripAdvisor page, a random aggregator, and maybe an old forum thread before they find the actual boat. That is a leak. Not a big one, but a leak I can plug by writing about the boat honestly on my own domain and letting the search engines figure out that kitmobley.com and dirtyboat.com are talking about the same operation.

The code and the cockpit share a philosophy

When I was at Tribune Digital between 2009 and 2015, I led the AWS migration for six papers. LA Times, Sun-Sentinel, Orlando Sentinel, Baltimore Sun, Hartford Courant, Chicago Tribune. That work taught me that the systems that survive are the ones you can reason about at 3am when something breaks. Fewer moving parts. Fewer vendors in the critical path. Owned data.

DirtyBoat’s stack is the same idea, smaller. If Stripe goes down, I know. If SendGrid rate-limits me, I know. If the Supabase project has a slow query, I can open the dashboard from the boat when we are drifting on a hump waiting for a bite. There is no plugin author in Kyiv who might update something and break checkout on a Saturday.

The boat is the same way. I know every hose, every pump, every wire behind the helm. I did not buy a boat I could not fix myself if I had to. I do not run a stack I cannot fix myself if I have to. The customer never sees any of this, and that is the point.

If you are looking for the charter

DirtyBoat charter bookings go through (305) 209-5594 or dirtyboat.com directly. Slip is at Robbie’s Marina, MM 77.5, Islamorada. Offshore trips only. Four anglers max for comfort, six if you insist.

If you are here for the web dev side, that is (954) 682-9551 or km@kitmobley.com. I am usually on the water, so text lands better than a call. The two numbers ring two different phones for a reason. When I am running a charter, I am running a charter. When I am at the desk, I am building.

That separation is the whole trick. The name DirtyBoat covers both jobs because both jobs run on the same principle: own the work, own the tools, and answer the phone.