Skip to content
prom.work
/
Back to all work
Real engagement (anonymized)Boutique gym & studio

Turning 'are you free?' into a paid booking, automatically

A boutique gym (anonymized) replaced LINE chat back-and-forth with a booking that takes a PromptPay deposit before the slot is held.

FieldBoutique gym & studio
Service linesBooking apps, Websites & marketing sites
TimelineMapped, built, and handed off in a few focused weeks
ProvenanceReal engagement (anonymized)
10:24
Class booking
  • 18:00Evening YogaCoach May
    3 seats left
  • 19:30PilatesCoach Fah
    5 seats left
  • 07:00Muay Thai FitCoach Ton
    Full

The problem

Half my day is answering 'are you free Saturday?' on LINE, and people still no-show after I hold the slot. I want them to commit before I block the time.

Who it is for

Owner-operated gyms, pilates and yoga studios, small group-class spaces: anywhere the owner is also the coach, the receptionist, and the one chasing deposits. Built for a single location first, with room to add coaches later.

Scope of work

I built the smallest thing that actually changes her day: a booking flow that holds nothing until money moves.

  • Class schedule with capacity per slot, editable from the owner's phone
  • PromptPay deposit collected at booking; the slot is only held once it clears
  • Automatic LINE reminder the day before, with a one-tap way to cancel inside the window
  • A simple bilingual booking page that works on the phones members actually use
  • An owner view of who is coming, who paid, and who cancelled

What you own at hand-off

  • The full codebase, in the gym's own repository
  • Hosting, domain, and the PromptPay and LINE accounts set up in the gym's name
  • A plain-language runbook: how to add a class, refund a deposit, change reminder timing
  • A short handover call, recorded, so the owner can rewatch instead of re-asking

Package tiers

Essential

For
One location, one calendar, deposits and reminders working end to end.

Includes

  • Single-location class schedule
  • PromptPay deposit at booking
  • Day-before LINE reminder

Studio

For
Multiple coaches and recurring class series, plus a public schedule page.

Includes

  • Everything in Essential
  • Per-coach calendars and recurring series
  • Public bilingual schedule page

Signature

For
Packages, memberships, and the reporting an owner needs to plan ahead.

Includes

  • Everything in Studio
  • Class packs and memberships
  • Attendance and revenue reporting

Timeline & phases

  1. Map

    A short first week

    I sat with the owner and traced one real booking, from the first LINE message to the no-show, to find where money should change hands.

    A one-page scope: the exact flow, the deposit rule, and what we deliberately leave out.

  2. Shape

    Inside the same fortnight

    I designed the booking screen around the smallest number of taps a tired member would tolerate on a phone.

    Clickable screens the owner approved before any backend was built.

  3. Make

    The build weeks

    I built the booking, the deposit, and the reminder as one tested path, not three features bolted together.

    A working booking on a real test number, deposits landing in a real PromptPay account.

  4. Prove

    A focused week

    We ran the gym's own members through it for a week and watched where anyone hesitated.

    A short list of fixes from real use, all closed before launch.

  5. Hand-off

    The final days

    I moved every account into the gym's name and walked the owner through running it without me.

    The keys: code, hosting, accounts, and a runbook in plain Thai and English.

How pricing works

  • Quoted per project after a short scope call. You see the full number before any money moves.
  • Payment is phased against the build: a deposit to start, a milestone at a working booking, the balance at hand-off.
  • Fixed scope, fixed price. If you want more later, it is a new, separately-quoted scope, never a surprise.

Assumptions

  • The gym has, or is willing to open, a PromptPay-capable account in its own name.
  • Members book on phones, mostly through LINE; we design for that first.
  • One location and one owner-approver for decisions during the build.

Deliberately out of scope

  • No point-of-sale or in-person card terminal; this is online deposits, not the front desk till.
  • No native app on the stores; a fast web booking covers the real need without app-store overhead.
  • No multi-branch franchise console in the first scope; it is a clean place to grow into, not day one.

The one decision that mattered

The deposit is the product, not a feature

The owner first asked for a calendar. The real problem was no-shows, so the one decision that mattered was refusing to hold any slot until a PromptPay deposit cleared. Everything else, the schedule, the reminders, the owner view, exists to support that single rule. Selling the rule, not the calendar, is what changed her week.

I usually build the deposit path before I build the calendar UI. If money cannot move, nothing else matters, so the first thing that worked end to end was a single PromptPay charge against a real account, with the slot held only after it cleared.

The reminder came next, and it was deliberately boring: one message, the day before, with a one-tap cancel inside the window. A reminder that nags twice gets muted; a reminder that respects the member gets read.

The calendar was the last thing I touched, because by then it only had to display a rule we already trusted.

Search & answer visibility

  • A clean, fast public schedule page that Google can read, so 'pilates near me' lands on the booking, not a competitor.
  • Bilingual page structure so Thai and English searches both find the right class.

Outcome & what it proves

The result

The owner stopped negotiating slots in chat and started waking up to deposits already paid. No-shows fell sharply once deposits were in, because a paid deposit is a kept appointment.

What it proves

That a booking app earns its keep when it changes behavior, not when it adds buttons. Hold nothing until commitment, and the no-show problem mostly solves itself.

Boutique gym & studio

Have a problem that looks like this?

One message in plain language is enough to start. I map the work, scope it fixed, and you see the full number before any money moves. I reply within one business day.