Business: Glasshouse Padel Club
Location: Bryanston, Johannesburg, South Africa
Problem solved (one line):
A solo owner stops chasing court payments: players pay their own quarter, unpaid holds release themselves, and bookings confirm without a message.
Client brief:
Glasshouse is an independent padel club with four glass courts (three indoor, one outdoor panoramic), open 06:00-22:30. The owner runs it alone and fields around [90] booking messages a day. Weekday evenings are packed and mid-mornings sit empty. About [1 in 5] bookings collapse when one friend never pays their share, leaving the court held and unsold.
What I built:
Front door: live availability across all four courts, honest peak, standard and quiet-hour prices, and booking with no account needed.
Follow-through: the court is held for 15 minutes while each friend pays their own quarter from their own link. At 4 of 4 paid, the booking confirms itself. If the squad doesn't fill, the court releases itself and goes back on sale.
Payments run in demo mode (approved and declined flows, receipts). No real money moves, and PayFast or Paystack would plug in for live use.
Owner view shows paid bookings and released holds without the owner sending a message.
I built MobiFix Nairobi : A Mobile auto care company.
I rebuilt the moment an inbound “Can I book with you?” becomes “You’re booked.”
MobiFix Nairobi is a fictional mobile automotive service business built around one simple problem: booking vehicle services often means back-and-forth messages, checking availability, coordinating technicians, confirming locations, and handling payments manually.
I designed the experience so the customer can:
→ Choose a service
→ Select their vehicle
→ Enter their location
→ Pick an available date and time
→ Add their details
→ Review the booking
→ Complete payment
→ Receive a booking confirmation and code
Behind the scenes, the business gets a real dashboard with bookings, calendar, customers, services, technicians, availability, analytics, and website management — all backed by real data.
The goal was to make the entire journey feel less like “requesting an appointment” and more like simply getting booked.