Case study · Beauty / Salon

Booking without a booking system

A structured request that lands on WhatsApp converts about as well as a live calendar, and costs nothing to run.

Luxe Salon

Beauty / Salon · 4–7 days · ₹10,000–₹20,000

Go and use the build

Booking is a structured request, not live availability

The form asks for service, preferred date, preferred time and stylist, then sends a complete message the salon confirms.

Instagram stays the gallery

The salon already posts its work there daily and will keep doing so.

The situation

What goes wrong here

Salons are sold scheduling software constantly. For a chain with twelve chairs and a receptionist, it is the right tool. For a two-chair salon where the owner is also the stylist, it is a subscription plus a system that has to be kept accurate all day by someone whose hands are busy — and a calendar showing slots that are not really free is worse than no calendar at all.

Meanwhile the two things a client actually wants before booking are the service list with prices and evidence of the work. Salons tend to have the second in abundance, on Instagram, and almost never have the first anywhere public.

The decisions

Every one of these had a cost

A decision with no trade-off is a feature list. Each of these names what was given up, because that is the part a client needs to agree with before the project starts — not after.

  1. 01

    Booking is a structured request, not live availability

    The form asks for service, preferred date, preferred time and stylist, then sends a complete message the salon confirms. The client gets a reply within the hour; the salon never shows a slot it cannot honour. Structure is what makes this work — a request carrying all four fields is answerable in one message, unlike 'hi, appointment?'

    What it cost

    No instant confirmation, and no automatic reminders. If the salon grows past the point where someone can reply within the hour, this should be replaced with real scheduling — and that is a good problem, not a design flaw.

  2. 02

    Instagram stays the gallery

    The salon already posts its work there daily and will keep doing so. Copying those photos into the website creates a second gallery that goes stale within a month and quietly makes the business look less active than it is. Embedding the live feed means the website is always as current as the Instagram.

    What it cost

    The gallery depends on a third party: if the embed changes or the account goes private, the section degrades. That is a real risk, and it is accepted knowingly rather than discovered later — the alternative is a stale gallery, which fails silently and permanently.

  3. 03

    Every service carries a price

    Same argument as the gym, and it matters more here because salon pricing varies enormously by service. A visitor who cannot tell whether a cut is ₹300 or ₹3,000 does not call to find out; they go to the salon whose page told them.

    What it cost

    Prices have to be kept current, which is one more maintenance obligation.

In the build

  • Service menu with prices
  • Appointment request form with stylist and time preference
  • Instagram gallery embed
  • Working hours and location
  • WhatsApp button

Built with

  • Next.js
  • Tailwind CSS
  • Instagram oEmbed

You provide

  • Service list and prices
  • Salon photographs
  • Working hours
  • Instagram handle

Nothing starts until the scope, timeline and price are agreed in writing.

Measured

How this build actually performs

Taken from the finished build under throttled conditions, not from a score card. All six concept builds share a foundation, so they share these numbers.

Chromium at 412×915, 4× CPU throttling, 1.6 Mbps with 150 ms latency, cold cache — a mid-range Android phone on a typical Indian mobile network, not a developer's laptop. Includes the analytics the live site loads. Measured 2026-09-08.

Largest contentful paint
1.58–2.16s
When the main content is actually on screen. Google treats anything under 2.5s as good.
Cumulative layout shift
0
Nothing moves after it appears — no mis-taps caused by a button jumping.
JavaScript over the wire
429 kB
Compressed, as actually sent — 259 kB of site code plus 170 kB of Google Analytics.
Total page weight
~613 kB
Everything: markup, styles, fonts, scripts and analytics.

Honestly

What this is and isn’t

A concept build; the salon and its stylists are invented. The Instagram section in the demo is a visual stand-in rather than a live feed, since there is no real account behind it — on a real project it embeds the client's actual account.