How we built a live local marketplace where shops are always 'on'.
Hoyzee is a two-sided marketplace connecting local shops — barbers, salons, repair shops, service providers — with customers who want to book, browse real-time availability, or just find out who's open nearby. We built the customer app, the merchant platform, and the real-time availability engine.

Local service businesses — barbers, nail salons, repair shops — lose customers daily because people can't tell if they're open, how long the wait is, or whether to walk in or book.
Local service businesses — barbers, nail salons, repair shops — lose customers daily because people can't tell if they're open, how long the wait is, or whether to walk in or book. Google hours are often wrong. Calling feels old-fashioned. Walk-ins get turned away.
On the merchant side, the tools are fragmented: one app for bookings, another for payments, another for customer messaging. Most have no digital presence at all. Hoyzee needed to be simple enough for a 60-year-old barber and powerful enough for a multi-location salon chain.
The real-time availability engine was the technical core — a two-sided marketplace where walk-in queue depth and booking slots need to update for customers within seconds of a merchant making a change.
Simple for the merchant. Smart for the customer.
We onboarded 30 local merchants as design partners — from solo barbers to 4-location salons. The merchant-side design constraint: onboarding in under 15 minutes, key actions in under 3 taps. The customer side: finding an open shop nearby in under 20 seconds.
Real-time availability at marketplace scale.
The customer app is Flutter. The merchant management portal is a Next.js web app with a companion Flutter app for on-the-go queue management. The real-time availability engine is built on Postgres LISTEN/NOTIFY pushing WebSocket updates to all connected customers — updates propagate within 2 seconds.
What ships in the product.
Live availability map
Real-time map showing open shops nearby with walk-in wait time and next available booking slot.
Instant booking
Book any open slot in 3 taps. Confirmation, reminders, and one-tap rescheduling — no phone calls.
Walk-in queue
Customers join the virtual queue before arriving. Merchants see the queue live and can update wait times.
Merchant dashboard
Today's appointments, walk-in queue, revenue, and customer history — all on one screen, refreshing in real time.
Smart scheduling
Merchants set service types, durations, and staff availability. The booking engine prevents double-bookings automatically.
Customer profiles
Saved preferences, service history, and favourite shops. Merchants see preferences before the appointment starts.
In-app payments
Card-on-file payments at checkout. Merchants receive payouts via Stripe Connect on a configurable daily or weekly cycle.
Reviews and ratings
Post-visit ratings (1-5 + optional note) verified by booking data. Merchants respond publicly to reviews.
Multi-location support
Chains manage all locations from one account — unified calendar, staff rotas, and consolidated revenue reporting.
Production-grade from week one.
We chose the boring, battle-tested options where it mattered and innovated where it gave the product a real edge.
We went from a paper appointment book to 340 bookings in our first month on Hoyzee. Three walk-in customers found us because the app showed we were open at 7pm.
What it took.
- Real-time at two-sided scale. Customers see availability updated by merchant actions. We used Postgres LISTEN/NOTIFY → Node event emitter → WebSocket fan-out. At 2,400 merchants, this scales linearly — no message broker overhead.
- Merchant onboarding in under 15 minutes. We obsessed over onboarding time. Progressive disclosure (3 required steps at signup, optional settings later), photo upload via phone camera with automatic crop, and pre-populated service templates for 40 business types.
- Booking conflict resolution. Walk-ins and bookings compete for the same time slots. We built an optimistic locking system with a 30-second hold period — the slot is reserved while the user completes checkout, released if abandoned.
- Payout complexity for multi-staff merchants. Salons with employed stylists need per-stylist commission splits on every booking. We extended Stripe Connect with a commission calculation layer that splits payouts at the charge level — not via manual reconciliation.
What changed.
A walk through the product.





Hoyzee in the wild.
A closer look at the core user flows built for this product.

Building something like Hoyzee?
Hoyzee is a two-sided marketplace connecting local shops — barbers, salons, repair shops, service providers — with customers who want to book, browse real-time availability, or just find out who's open nearby. Send us a brief and we'll scope it within 24 hours.