The context
A booking SaaS for hair salons, beauty studios and wellbeing practitioners. Each venue gets a public booking page and manages its calendar, staff, services and customers from the tool.
The challenge
Three constraints shaped this project, and none of them is an implementation detail.
No-shows are the industry’s real problem. In these professions a lost slot is never recovered: it is revenue that simply vanishes. The reminder is therefore not a convenience feature, it is the product’s main economic value. Provided it actually gets read — and email no longer really is.
Arabic is not just one more translation. Switching an interface to Arabic means inverting it entirely: reading direction, alignment, icon placement, arrow direction, column order. A project that adds RTL after the fact never finishes the job — there is always a forgotten screen left over.
Multi-staff calendars are harder than they look. Individual working hours, time off, durations varying by service, overlaps to forbid: a salon’s real availability is not naively computed.
What we did
- WhatsApp reminders, through the official API — because in this sector that is the channel people actually read, unlike email. Sending runs as background tasks, so a slow or unavailable messaging service never blocks a booking in progress.
- Multilingual from day one, including right-to-left Arabic. Internationalisation was set as an architectural constraint rather than a layer added later — the only way to avoid leaving half-inverted screens behind.
- Public booking with no account creation. Forcing a customer to register before booking means losing a share of bookings at the most fragile step of the journey.
- A multi-staff calendar handling each person’s own hours, with multi-location support on a single account.
The outcome
The platform is in active development.
This project is a good example of a product decision that looks like a technical one. Choosing WhatsApp over email for reminders commits you to an integration, background task management and a dependency on an external API — for a benefit that is not technical at all: an appointment honoured instead of a slot lost. That is the kind of trade-off you make with the client, not for them.