Run your operation from one panel.
Products, sessions, bookings, payments, gift cards, promos, the merch shop, customer communications — everything an operator needs, organised by what you actually do day to day, not by database schema.
Dashboard — what you see when you log in
The landing screen of the admin is an operations dashboard showing the four numbers most operators check first thing in the morning, followed by a table of everything that’s happening in the next seven days.
- Total bookings — lifetime count across all products.
- Bookings this month — current calendar month.
- Revenue this month — confirmed and pending, formatted in your local currency.
- Upcoming in the next 7 days — count of confirmed/pending bookings on sessions scheduled in the next week.
Underneath, a table lists every upcoming booking in that 7-day window with reference, customer, product, guest count, date, and status. Every row links straight to the booking detail page — from the dashboard to a specific customer in one click.
This is an operations dashboard, not a marketing analytics
dashboard. For conversion rates, funnel drop-off, and traffic sources
you still want Google Analytics, Plausible, or Fathom — the
widget emits postMessage events you can plumb straight
into them.
Products, tiers, add-ons
Each product (boat, charter, experience) has its own listing with photos, description, capacity, and pricing tiers. A pricing tier might be a 2-hour, 4-hour, or full-day variant of the same boat — or a flat-rate hire vs a per-person tour. Each tier can have its own price, its own latest-start-time rule, and its own minimum/maximum guest count.
Add-ons (skipper, esky, photographer, equipment) are defined once per product and offered at the options step in the booking flow. Add-ons can be flat-rate or per-person, and each one carries its own price.
Sessions & the bulk scheduler
A session is one bookable slot — a date plus a start time plus a remaining capacity. The bulk scheduler lets you generate sessions across a date range in one pass, so you can roll out a whole season of availability without typing each day in.
Each session can be deleted individually if a day needs to come off the calendar (weather, maintenance, anything). Bookings are tied to sessions in the schema, so the working surface stays consistent between the schedule and the booking list.
Bookings — the working surface
The bookings page is where most operators spend their time.
- Filter by date, status, product, customer, reference code. Pull up “everything that happens this Saturday” in two clicks.
- Manual create. A customer phones you — create the booking from the admin in 30 seconds, no need to push them through the customer flow.
- Modify. Change date, time, guest count, add-ons, or move a booking to a different product. Capacity is recalculated.
- Refund. Refund through Stripe directly from the booking detail page — full or partial, no need to log into Stripe separately.
- Reference codes. Every booking gets a unique reference encoding the product category, date, start time and pricing tier — so a code on its own tells you what the booking is for.
Gift cards
Sell gift cards directly from your site — flat amount or product-specific. The recipient gets an emailed code; the purchaser gets a confirmation. Codes are validated live at checkout and can be partially redeemed against any booking total. The remaining balance carries over for the next use.
Gift cards have their own lifecycle — balance, redemptions, expiry — visible from the admin. Operators can issue complimentary cards manually, void a card if needed, and see the full ledger of redemptions per card.
The shop
Optional merch shop — sell hats, T-shirts, gift packs, or anything else physical alongside your bookings. Same Stripe checkout, same email confirmation pipeline, separate order management surface in the admin. Use the feature flag to turn it on per tenant.
Promo codes & holiday surcharges
Promo codes are managed from the admin — flat amount or percentage off, with optional usage caps and date ranges. They’re validated live at checkout via a dedicated API, so customers see the discount applied before they hit pay.
Holiday surcharges work the other direction — a percentage or flat uplift applied automatically when a booking falls on a defined holiday or peak day. Configured once, applied automatically by the pricing engine.
Waivers & resources
Waivers can be required at the options step for any product that needs them — the customer ticks an acceptance box and the waiver is recorded against the booking. Operators can pull up the waiver record alongside the booking detail.
Resources are the shared things bookings need to share — a particular boat, a particular skipper, a piece of equipment. The booking system tracks resource allocation so you don’t double-book a single boat across two simultaneous sessions, even if they’re on different products that share the same vessel.
Operator-editable email copy
The three most-visible customer emails — booking confirmation,
booking reminder, and the operator alert that lands in your inbox
when a booking is made — are editable from
/admin/email-templates. Six fields per template:
- Subject line — the email subject.
- Header title — the big heading at the top.
- Intro paragraph — the first body paragraph.
- Sign-off — the closing text before the signature block.
- CTA button label — e.g. “Manage your booking”.
- Footer note — optional small print under the body.
Variables like {customerName},
{reference}, {productName},
{date}, {time} and
{businessName} can be used in any text field. The
admin shows a live preview as you type. Empty fields fall back to
sensible defaults, so you can edit only what you care about.
Bank-details boxes, the booking-details table, and other structural elements stay hardcoded — you control the voice, not the structure.
Settings
One settings page for the things you set once and forget — business name, contact details, currency, cancellation window, payment-related toggles, Twilio credentials (if SMS is enabled), and the small set of tenant-wide preferences that aren’t product-specific.
What the admin doesn’t do
- No multi-user RBAC. One admin login per tenant. The platform is built for owner-operators, not large teams with tiered permissions.
- No marketing funnel analytics. The dashboard
above covers operations (bookings, revenue, upcoming week) but
not conversion funnels or traffic sources. Plumb the widget’s
postMessageevents into Google Analytics, Plausible, or Fathom for that. - No CRM module. Customer records exist (you can look up a customer’s booking history) but there’s no marketing-automation, no segmenting, no campaign builder.