All case studies

A Woman's Touch · US salon via agency

Salon Staff Appointment Portal

Production-ready branded staff PWA — simple daily schedule, live GHL sync.

Next.js 14TypeScriptTailwindUpstash RedisGHL API v2

The Problem

The constraint: Salon staff at A Woman's Touch needed one thing: see today's appointments clearly on their phones.

GoHighLevel's LeadConnector mobile experience was powerful — and overwhelming. Extra CRM chrome created friction every morning.

The marketing agency needed a branded, staff-only surface that still lived on live GHL calendar data.

What I Built

  • Shipped: A mobile-first Progressive Web App connected live to GoHighLevel via API v2.
  • Shipped: Custom authentication tied to GHL users so only authorized salon staff could sign in.
  • Shipped: A clean daily schedule dashboard — appointments front and center.
  • Shipped: In-app booking with deposits via an embedded GHL widget.
  • Shipped: Reschedule and cancel actions that write back to the GHL calendar in real time.

The Hard Parts

Staff auth without CRM sprawl

Engineering challenge: Staff needed secure access mapped to GHL identities, without handing them the full agency CRM.

Calendar write-back reliability

Engineering challenge: Writing reschedules and cancellations back without race conditions required careful reconciliation with GHL's calendar model.

PWA polish on a production timeline

Engineering challenge: The portal had to feel native on phones — installable and fast — while staying deployable on Vercel.

Outcome

Result: Shipped a production-ready branded staff portal hosted on Vercel.

Salon staff got a schedule experience purpose-built for their day.

Client feedback: "This is good so far... pretty simple and good."

This is good so far... pretty simple and good.

Client feedback

Need something similar on GHL?

Let's talk about your custom app, add-on, or integration.

Book a free call