Back to Work
KRY-01 · Case Study Live

GYM INDIE.

A per-session private-gym booking PWA that replaced a manual WhatsApp + spreadsheet flow — real-time availability, verified payments, and automated door access. Live in production at gymindie.com.

Client
GYM INDIE · Pontianak
Role
Full-stack, end-to-end
Platform
PWA (installable)
Core stack
Laravel 13 · PHP 8.3 · MySQL
Overview · Live

From spreadsheet to automated booking.

Built end-to-end on Laravel: real-time slot availability, 1-click payment verification for the admin, automated WhatsApp notifications (self-hosted WAHA), and per-booking smart-lock PINs for staff-free door access.

175Customers
452Bookings
391Sessions attended
2012WhatsApp alerts
Laravel 13PHP 8.3MySQLPWAWhatsApp API (WAHA)Docker / VPS
GYM INDIE app home screen, live in production
gymindie.com — live in production
GYM INDIE booking flow architecture diagram
Booking flow architecture
Details — Dossier What was built & its impact

What I did

  • Per-session booking with real-time availability — customers pick a slot; the system prevents clashes automatically.
  • 1-click payment verification for the admin — confirming manual transfers without checking the bank back and forth.
  • Automated WhatsApp notifications (self-hosted WAHA) — booking confirmations & session reminders send themselves.
  • Per-booking smart-lock PINs — automatic door access per session, with no staff on duty.
  • Progressive Web App — installable on phones, fast, and native-feeling.
  • Deployed on Docker / self-hosted VPS — low running cost, full control.

Outcome & impact

  • Replaced the manual flow of WhatsApp + spreadsheet with one booking system.
  • 452 bookings and 391 attended sessions from 175 customers, all tracked.
  • 2,012 WhatsApp notifications sent automatically — the owner serves clients instead of replying to chats.
Interface — Screens Customer & admin side

From booking to control room.

Customer side Mobile · PWA
Customer screen: pick date and 60-minute slot with real-time availability
FIG-01 · Pick date & slot
Customer screen: confirm session, party size, and total price
FIG-02 · Confirm session
Customer screen: choose payment method and upload transfer proof
FIG-03 · Pay & upload proof
Customer screen: proof submitted, awaiting admin verification
FIG-04 · Awaiting verification
Admin side Desktop · Command Center
Admin panel: command-center dashboard with stats, popular slots, and a booking heatmap
FIG-01 · Dashboard & analytics
Admin panel: payment verification with transfer proof and the approve decision
FIG-02 · Payment verification
Admin panel: booking management with status, tier, and date filters
FIG-03 · Booking management
Admin panel: WhatsApp message template editor with placeholders and smart-lock PIN
FIG-04 · WhatsApp templates + PIN
Admin panel: manage per-hour slot capacity and status
FIG-05 · Slot & capacity
Admin panel: customer database (CRM) with personal data redacted
FIG-06 · Customer database

Customer personal data, bank details, & business figures are redacted for privacy.

Run a booking, rental, or scheduling business?

The same flow — real-time availability, payments, and automated WhatsApp notifications — fits your business too. Scope & cost clear up front.

Free Consultation via WhatsApp