Configuration
Supabase configuration required
Set NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, and NEXT_PUBLIC_SITE_URL to connect the app to a real backend.
Reserve your visit with calm clarity.
Move from service choice to staff preference, calendar selection, and final review in one continuous reservation flow. The experience stays elegant on mobile and writes directly to the same Supabase-backed records used by the SŌMA team.
Booking promise
One clear decision at a time, with live context kept visible throughout.
Availability is revalidated at confirmation to protect against double booking.
Payment stays confidently in store only, collected discreetly at check-in.
Step 1
Choose the treatment focus for this visit.
Begin with one primary SŌMA service. The rest of the journey will adapt around its duration, cadence, and available openings.
Reservation summary
Choose your visit
Select a service to keep your visit details visible while you move through the reservation flow.
Service
Not selected
Staff
Any available
Schedule
Date and time pending
Payment
Pay in store at check-in
Your booking will remain unpaid until the team records payment on-site.
Continue securely
Sign in when you are ready to reserve.
Your selected service is preserved through authentication, then you continue into staff selection, calendar scheduling, and final review.