Reel Excitement Charters is a Shell Beach, Louisiana fishing operation: charter trips, lodge nights, phone bookings, and a counter terminal guests already recognize. When we rebuilt their site into a full booking platform, payments were not a greenfield decision. They were already on Square.
The actual requirement
Guests needed to pay deposits and balances online. Staff needed those payments to land in the same merchant account they reconcile at the end of the week. The owner did not need a marketplace, split payouts to multiple captains, or a platform fee model. One business, one ledger.
That rules out most of the Stripe features people reach for by reflex. Connect, Express accounts, and application fees solve a different problem: software companies paying out many sellers. Reel Excitement is one seller taking charter and lodge money.
Why Square won
- Existing merchant account. No second onboarding flow, no "why do I have two dashboards?" training session.
- In-person + online in one place. Dock-side terminal charges and web checkout share reporting the owner already reads.
- Web Payments SDK on Next.js. Integer-cent amounts, server-side payment confirmation, webhooks wired into booking state and Resend email.
- Scope matched the product. We were shipping one branded site for one operator, not white-label payments infrastructure on day one.
What we did not optimize for
Stripe is the better default when you are building multi-tenant SaaS, subscription billing with complex proration, or a product catalog that changes every sprint. GuideStack Outdoors (the white-label name for the same engine) may eventually need a second payments story. Reel Excitement did not need that complexity on launch week.
We also did not chase the lowest processing rate in a spreadsheet. The win was fewer moving parts for a non-technical owner: calendar, CMS, checkout, guest portal, admin, and email confirmations that only fire after Square confirms payment.
Receipts
Live booking and lodge flows at reelexcitementcharters.com. Platform stack: Next.js on Vercel, Sanity CMS, Square checkout, Resend for transactional mail, Neon for auth data. Manifest synced Jul 2026; see the product page and the public changelog for dated updates.
If you are scoping a single-operator booking build and the client already swipes cards on Square, ask why you are importing Stripe before you import their existing merchant ID.