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.
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.
Highlights
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
Architecture
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.