A complete booking platform for hotel activities — from sunset sailing to cooking classes. Stripe payments, QR check-in, email confirmations and a full admin dashboard, all in one.
Built for single-tenant hotel deployments. One codebase, one hotel, zero overhead.
Guests browse activities, select a date and time slot, fill their details and pay via Stripe — all in under 2 minutes. Instant email confirmation with QR code and .ics calendar attachment.
Real PaymentIntents with webhook processing, automatic refunds on cancellation, retry logic for failed payments and full idempotency. Test and live keys managed from the admin panel.
Staff scan QR codes at the activity meeting point. Offline-capable with batch sync. Works on any phone without installing anything — just a browser.
Admin sets slots directly — specific dates, times and capacities per slot. No recurring rule complexity. Generate bulk slots by day-of-week or create them one by one.
Confirmation, cancellation and reminder emails with hotel branding pulled live from the database. SMTP settings configurable from admin. 4-hour opt-in reminders via cron.
Revenue by period, top activities, booking status breakdown, Stripe vs cash split — all built-in without third-party analytics tools. Filterable by custom date range.
Admin has full control — pricing, settings, financials, reports. Front office can manage bookings, activities and categories but cannot touch sensitive settings or revenue data.
Guests access their bookings via a one-time password sent to their email — no account needed. Rate-limited, email-enumeration-proof and token-expiry managed automatically.
Colors, fonts, hero image, welcome text, SMTP, Stripe keys, cancellation windows, reminder hours — all configurable from one admin settings page. No deployments needed.
A frictionless experience for your guests, full visibility for your team.
Guests explore published activities on the Next.js portal — filtered by category, price or date. Featured activities surface at the top.
Pick a date and time, select the number of adults, children and babies. The live price updates automatically based on activity pricing rules.
Secure Stripe Payment Element — card, Apple Pay, Google Pay. The slot is held immediately on booking creation and released if payment isn't completed within 30 minutes.
Instant confirmation email with QR code and calendar invite. Staff scan the QR at the meeting point to mark attendance in real time.
Built for shared hosting and VPS environments — no Redis, no Horizon, no Forge required. Just PHP, MySQL and a cron job.
Backend
Frontend