Own Time Studios.

Case study · Hair and beauty · Essex

Projects Salon

An AI hairstyle try-on inside the booking journey: clients see the look on their own photo before they commit to the chair.

Projects Salon

The brief

A new hairstyle is a commitment you cannot undo at the till. Clients arrive at salons with a saved photo of someone else's hair and a quiet worry: will it suit me. That worry is the gap between browsing looks and actually booking one.

The brief from Projects Salon was easy to say and hard to do well: let clients preview a look on their own photo while they book. Not a separate app, not a novelty on the homepage. One step inside the journey that already ends with a confirmed appointment.

There is no shortage of AI hairstyle toys. Most are fun for a minute and nowhere near a real appointment. The interesting problem was placement, not the model: a preview only matters at the exact moment a client is deciding.

What we built

The try-on sits at the style step of the booking flow. A client adds a photo, taken there and then or picked from their camera roll, browses the salon's set of looks, and sees each one rendered on their own face rather than a model's. When a look lands, the choice carries through to the rest of the booking: the right service, the right amount of time, straight into choosing a date.

We built it as one journey with one voice. The try-on uses the same type, spacing and colour as the rest of the booking, so it reads as the salon's own rather than a widget from somewhere else. It is also optional at every point: skip the photo and the booking works exactly as it always did. The AI is there for clients who want it and invisible to those who do not.

Most of the engineering went into the unglamorous parts: checking photos before they reach the model, hiding render time inside steps that already exist, and making sure a failed preview can never cost the salon an appointment.

The details that mattered

  • Photos are checked before anything is generated. Too dark, face turned away, more than one person in frame: the flow says so in plain English and asks for another shot, because a retake prompt is kinder than a bad render.

  • Load discipline hides the wait. The photo is compressed on the client's phone before upload and prepared while they browse the looks, so by the time they tap one, the first preview is already close.

  • The try-on inherits the booking flow's typography, spacing and colour rather than shipping its own, so the AI step reads as part of the salon's journey and not a third-party widget dropped in.

  • Photos exist to make the render and no longer. They are not kept, reused or added to anything unless the client chooses to save a look.

  • A failed render never blocks an appointment. If a preview does not come back, the flow carries on to date and time, because the booking always matters more than the feature.