Pluton.id
All work

Wondher

Member app and back office for a women-only gym and pilates studio: class booking, QR check-in against session credits, and in-app QRIS payment.


rewritten from React Native, shipped
1 app
Built for
PT Dzawani Hospitality International

The problem

A studio sells packages of sessions, and the whole business depends on one number being right: how many sessions a member has left. If check-in and billing disagree, either the member is short-changed or the studio is.

The existing app was React Native and had reached the point where every change cost more than it returned. Rewriting a live app is the kind of project that quietly runs for a year, so the constraint was to ship it, not to admire it.

The approach

Rewritten in Flutter against a NestJS and PostgreSQL back office. Check-in is a QR scan that deducts exactly one credit, in a transaction, so the balance and the attendance record cannot drift apart.

Payment is native QRIS through Xendit inside the app — no browser hand-off, which is where mobile payment flows usually lose people. Membership and expiry tracking, class scheduling and push notifications sit around it, and the back office is built for the staff who actually run the desk rather than for a demo.

The outcome

Shipped and in use by members and studio staff, replacing the React Native app rather than sitting alongside it.

Session balances are now settled by the same transaction that records attendance, so there is one number instead of two that need reconciling.