Client Studio
A self-hosted app for coaches, trainers and tutors: sell session packages, get paid, let clients book their own times, and send newsletters, all from a phone.
- STACK
- Next.js 16 · React 19 · TypeScript · SQLite
What's under it.
- Concurrency-safe booking
A booking is checked again inside a database transaction, so two clients can't take the same slot. Cancelling re-checks its window in the same write.
- Availability that survives daylight saving
Open times intersect weekly hours with time off, buffered sessions and the notice period, built from the local wall clock so DST days come out right.
- One renderer for the email and its preview
The newsletter builder's live preview runs exactly the code that sends.
- Cut on purpose
Moving from PHP to TypeScript removed what cost more than it gave: paid auto-texting, calendar import, image hosting. Texts open in the owner's own Messages app instead.
Venmo to confirm
They say they’ve paid. Check your Venmo for the amount and note code, then confirm.
Time to renew
Not sent yet
Did these happen?
Upcoming
Nothing booked
For Alex
Your Sessions.
Five Private Sessions
Strength and mobility, 60 minutes each.
To @tidewater-maya · keep #C7F3A in the note so Maya can match it
Your sessions
- Thu, Oct 29 · 9:00 AM
Done ✓ · 60 min · Harbor Street studio - Thu, Nov 5 · 9:00 AM
Done ✓ · 60 min · Harbor Street studio - Thu, Nov 12 · 6:00 PM
60 min · Harbor Street studio
2 sessions left to book. Booking opens once you’ve paid. Tap “I’ve Sent It on Venmo” after paying.
Questions? maya@tidewater.example