Custom Booking & CRM Portal
How a bespoke WordPress + Firebase booking system boosted direct bookings by 55% and eliminated third-party commission fees.

The Challenge
The client was paying 15–20% commission on every booking to third-party platforms. With 80+ bookings per month, that was a significant monthly loss that could have funded their own marketing. They also had no ownership of their customer data — the platforms kept it.
Their existing website was a basic WordPress template with no booking functionality. Customers would email or call to book, leading to double-bookings, missed requests, and a poor first impression.
Key Pain Points
- 15–20% commission per booking paid to third-party platforms
- No direct ownership of customer data or booking history
- Double-bookings happening weekly due to manual calendar management
- No automated follow-up for abandoned enquiries or post-service reviews
The Solution
We built a fully custom WordPress-based website with a bespoke booking engine backed by Firebase. The site is fast, branded, and owns the full customer journey — from discovery to confirmation to post-service follow-up.
Stripe handles secure payments. Firebase Firestore manages real-time availability and booking state. Automated email sequences handle confirmations, reminders, and review requests — all without any ongoing manual work.
Architecture & Tech Stack
A WordPress frontend with Firebase as the backend-as-a-service. This gives the client a familiar CMS for content management while the booking engine runs on a scalable, real-time Firebase stack.
WordPress Frontend
A custom WordPress theme built from scratch with Advanced Custom Fields (ACF) for content flexibility. Tailwind CSS via PostCSS gives it a modern, fast-loading UI without bloat.
Firebase Booking Engine
Firebase Firestore stores all bookings with real-time listeners on the availability calendar. Cloud Functions enforce business rules (no double-booking, deposit requirements, cancellation windows).
Stripe Payment Layer
Stripe Checkout handles all payments. Webhooks notify Firebase on successful payment, which then triggers the confirmation email sequence automatically.
Automated Email Sequences
Firebase Cloud Functions trigger SendGrid transactional emails: booking confirmation (instant), 24-hour reminder (automated), and review request (48h post-service).
Tech Stack
The Results
The site went live and within 8 weeks had completely replaced the third-party platforms as the primary booking channel — with zero commission fees.
“I didn't realise how much money I was losing every month. The website paid for itself in the first two months just from the commission savings.”