← Back to portfolio
Salon Booking Platform Live

Hair by Cari

A complete digital platform for a hair salon in Oliver and Osoyoos, BC — public marketing site, native iOS app, owner web app, and a microservice backend. Built and deployed end-to-end.

Role Designer · Developer · Operator

A SvelteKit admin app the salon owner uses end-to-end — calendar and appointments, client CRM, inbound SMS/email/phone bookings, the booking AI agent, inventory, reviews, reports, and system settings. 20+ admin routes, all wired to the same Flask backend the iOS client app uses.

  • Native iOS app for clients (Swift / SwiftUI)
  • SvelteKit owner web app with 20+ admin routes
  • AI booking assistant (OpenRouter) with voice + SMS modalities
  • Square API integration for payments and inventory
  • Twilio for SMS confirmations, reminders, and bookings
  • Resend for transactional email
  • Push notifications via APNs
  • Containerized backend (Podman) with cron jobs and IMAP listener

Microservice topology with a Flask API in Podman backed by separate workers for reminders, inbound-channel handling, the AI booking assistant, and a dedicated chat service. Frontend is a static SvelteKit build served by Nginx, with the iOS app talking directly to the API. Square is the system of record for appointments; the platform syncs both directions.

SvelteKitTypeScriptSwift / SwiftUIPython / FlaskSQLiteSquare APITwilioResendOpenRouterElevenLabsPodmanNginxInfisical