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
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
- 2,012WhatsApp alerts


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.
From booking to control room.










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.