Case study · Blackwood Barbers
A booking and operations platform for a two-site barbershop
Customer self-service booking, a real-time barber calendar, rostering, Square payments and automated SMS, built as one system and running in production across two Brisbane locations.
The challenge
Blackwood Barbers runs two busy Brisbane shops. Bookings, rosters, payments and customer follow-up lived across a third-party appointment tool, a point-of-sale system and people's memories. The business needed a fast, mobile-first booking experience that matched its brand, a single operational view for barbers and managers, and follow-up that happened without anyone remembering to do it.
How we approached it
Started with the operating model: two locations, shift-based rosters, walk-ins and bookings, and Square as the system of payment
Designed the architecture, data model and API contracts before any screen was built
Built the availability engine and booking logic first, then the customer flow, then the admin portal
Kept the customer bundle deliberately small and the backend cheap to run, with Brisbane time zone handled consistently at every layer
What we built
Customer booking flow
Public, mobile-first booking with no login required: choose a location, services, barber and time, then manage or cancel from a link. Only dates a barber actually works are shown.
Barber and manager portal
A day calendar on a 15-minute grid with a column per rostered barber, drag-and-drop rescheduling, breaks, no-shows, rosters with copy-from-last-week, inventory, expenses and reports, with role-based access.
Real-time updates
Calendar changes propagate to every open screen through lightweight signals, with an automatic polling fallback so the shop floor never works from stale data.
Square integration
Terminal checkout initiated from the calendar, catalogue and payment reconciliation, so the booking record and the payment record agree.
Automated customer messaging
Confirmation and reminder SMS, plus a daily rebooking reminder to lapsed customers. The dormancy window for that reminder was tuned using four months of production data rather than a guess, which cut wasted messages and protected the customer list.
Marketing data plumbing
A read-only Google Ads reporting client so campaign and search-term performance can be analysed alongside bookings.
Technology
- TypeScript
- Fastify on Cloud Run
- PostgreSQL (Cloud SQL)
- Preact and React with Vite
- Firebase Auth and Hosting
- Firestore signals
- Square API
- Twilio SMS
- Google Ads API
- GitHub Actions CI/CD
- Playwright and Vitest
What changed
One system of record for bookings, rosters and payments across both shops
Customers book in seconds on a phone without creating an account
Follow-up and reminders run automatically, with cadence set by evidence rather than habit
A documented, tested codebase with an architectural decision log the business owns
Measured figures from this engagement are held by the business and are published only with its written approval.
Services and capabilities involved
- delivery
AI Development & Integration
Production-grade AI applications, agents, copilots and intelligent workflows integrated with your systems.
Learn how it works - delivery
AI Architecture & Platforms
Secure, scalable AI foundations across AWS, Azure, Google Cloud and your existing estate.
Learn how it works - delivery
Data Readiness
Assess and improve the data foundation your AI opportunities depend on.
Learn how it works
- Cloud architecture and engineering
- Software engineering
- Data and analytics
- DevOps and platform engineering
More work
Have an operation that should run better?
We build systems that businesses actually run on, and we tell you honestly where AI belongs in them.