
Ribbon
Runs bookings, payments, refunds and payouts every day in Malaysia, Singapore, Taiwan and Thailand. A paid class booking with a cancellation rule, and a trainer's payout, are the same pieces.

A gym booking system from CodaMinds is a booking page and console for gyms and studios: members book a class with a set capacity, pay for packages and memberships, join a waitlist and check in at the door. It runs in English, 中文 and Bahasa Melayu, and we run it after launch.
Steven Lim started the studio in Kuala Lumpur in 2021 and has built apps and websites since 2016. We have not built a system for a gym or studio yet, and we say so before you ask. What we would build draws on two products we run: Ribbon, which handles bookings, payments, refunds and payouts every day, and Komen.now, our own restaurant platform with bookings, confirmations, reminders, a queue and a digital stamp card. The person you message is the person who builds your system, in English, 中文 or Bahasa Melayu. We meet studio owners in person across the Klang Valley, and work with gyms in the rest of Malaysia, Singapore and further abroad over WhatsApp and a shared draft link.
A yoga, pilates, spin or strength studio sells two things: a place in a class at a set time, and a package of those places. A gym with trainers adds a third: an hour with a person. Run on WhatsApp and a spreadsheet, the same problems come back every week: the class that is overbooked, the spot left empty by someone who never showed up, the package nobody can say how many classes are left on, and the trainer double-booked across two members. Seven pieces fix that.
Each class has a time, a room, a trainer and a capacity you set. Members see the timetable on their phone and book a place with one tap. When the capacity is reached the class closes, so the room never holds more people than it fits. A reformer class can be booked by bed, a spin class by bike, if members like to pick their spot. Each branch has its own timetable, and members see the classes at the branch they chose.
A member buys a package of classes, a monthly membership or a single drop-in, and pays online. Each booking takes a credit from their package, and the member always sees how many are left and when they expire. A membership can allow unlimited classes, or a set number per period, under rules you choose. Packages can be limited to certain classes, so a reformer package does not book a mat class by mistake. Renewals and a reminder before a package runs out go out from the system.
When a class is full, a member joins the waitlist. If someone cancels inside your cancellation window, the next member on the list gets the spot and is told, with no staff member messaging people one by one. You set how close to class time the waitlist keeps moving, and what happens to a late cancellation or a no-show: the credit is kept, or it is lost, as your rules say. The rule is shown to the member before they book, so nobody is surprised.
Each member's booking carries a code on their phone. The front desk scans it, or the member scans a code at the door, and the class list marks them present. A member who did not check in is a no-show by your rules, and the record is there when they ask about it. The owner sees attendance for every class and branch, and can see which classes fill and which do not.
Each trainer has one schedule: the classes they teach and the hours they open for personal training. Members book a session with a trainer from those open hours, so a trainer cannot be booked twice for the same slot. When a trainer is away, the studio assigns a cover and the members in that class are told. The console counts the classes and sessions each trainer took, which is the number their pay is worked out from.
The confirmation, the reminder before class and the link to cancel go out from the booking system itself. Staff stop sending the same message to every member, and WhatsApp stays for the conversations that need a person: a question about an injury, a package for a friend, a complaint. Your WhatsApp number stays your number, one tap away from every page.
A challenge is a programme with a fixed start date, a set number of places and one fee: a body-transformation cohort before Raya, a running block, a beginners' course. Members enrol and pay on one page, and the programme sessions appear in their bookings as soon as payment clears. The start date is set once in the console and shows the same everywhere it appears, and a stamp card can mark each session a member completes.
No gym or studio runs on our work yet. These two live products carry the machinery it needs.

Runs bookings, payments, refunds and payouts every day in Malaysia, Singapore, Taiwan and Thailand. A paid class booking with a cancellation rule, and a trainer's payout, are the same pieces.

Bookings with confirmations and reminders, a walk-in queue tracked on the phone and a digital stamp card, with a dashboard and staff roles. A class with a capacity and a waitlist is a table with seats and a queue.
Brief. You tell us the classes, rooms, branches, trainers, packages and the rules for cancellation and no-shows. We reply with questions and a written scope.
Fixed quote. One price for that scope, agreed before any work starts. Anything outside it is quoted first.
Draft on your phone. You open the draft link, buy a package, book a class, cancel it and join a waitlist as a member would, and tell us what to change. We revise until you sign off.
Launch. We put the booking system live on your domain, with hosting and member data in the studio's name, and hand over every file, the console included.
Care after launch. A new class type, a new branch, a new package or a challenge for the next season is a message away, each quoted before it starts. See website maintenance.
No, and we say so before you ask. What we would build draws on Ribbon, which runs bookings, payments, refunds and payouts every day, and on Komen.now, which runs bookings, reminders, a queue and a stamp card for restaurants. You book, cancel and check in on a working draft on your phone before you sign off.
Yes. Members buy a package, a membership or a drop-in and pay online. Each booking takes a credit, and the member sees how many are left and when they expire. Packages can be limited to certain classes, and a reminder goes out before a package runs out.
A member joins the waitlist with one tap. When someone cancels inside your cancellation window, the next member on the list gets the place and is told, with no staff member in between. You set how close to class time the list keeps moving, and the late-cancellation and no-show rule is shown before anyone books.
Yes. Each trainer has one schedule with the classes they teach and the hours they open for personal training, and members book only from those hours. A trainer cannot be booked twice for one slot, a cover can be assigned when they are away, and the console counts the classes and sessions each trainer took.
Yes. A challenge is set up once with its start date, places and fee. Members enrol and pay on one page, the sessions appear in their bookings when payment clears, and the start date reads the same on every page that shows it. A stamp card can mark each session completed.
Yes. English, 中文 and Bahasa Melayu in any combination, each a real set of pages on its own address that search engines can find, not a translation widget. Reminders go out in the language each member chose, and staff can run the console in a different one.
Send us the classes, branches, trainers and packages, and your cancellation rule. Tap the button to message us on WhatsApp and get a fixed quote for your gym or studio booking system.
WhatsApp us