971 MMA
The system the whole studio pivoted around.

The problem
The academy ran on a booking platform, a front desk and an access gate that had no knowledge of each other. Membership status lived in one system, entry was granted by a person recognising a face, and progression and attendance existed on paper, so retention signals were invisible and the front desk absorbed work that should have been automatic.
The approach
We scoped a core-first delivery: authentication, live membership status, gate check-in and class schedule shipped as one working spine before any secondary feature. The integration work, not the interface, was treated as the real project, and the QR design was hardened before a line of it was built.
Try it
Open it here.
A companion website redesign was produced alongside the application. The embedded preview below is that website build.
What was built
- React Native and Expo member application for iOS and Android.
- Accounts, storage and a realtime layer for gate verification, all under the academy's own control.
- Live membership status, class schedules and instructor lists synced from the academy's booking platform.
- Fraud-resistant check-in: the app requests a short-lived signed token from a server function, renders it as a QR pass with a visible countdown, and auto-refreshes it. The backend verifies signature and timestamp, rejects expired or replayed tokens, confirms active membership, then opens the gate and logs the visit.
- Integration with the access terminals already installed at the academy, rather than replacing them.
- Belt and rank progression with visual tracking, training and session history.
- Rewards system with a points balance and real redeemable value.
- Home dashboard with check-in streak, monthly session goal and digital member card.
- Member and coach roles, with instructor-only filtering after an early build incorrectly surfaced all staff as coaches.
Services
Stack
The delivered app
Real screens from the member app.
Not mockups, captures from the application the academy's coaches and members use. Swipe through.








Inside the build
Inside it.
The detail that mattered
Why the QR is not just a QR
The obvious build encodes the member ID in a static QR code. We rejected it: a static code can be screenshotted and shared, which turns a paid membership into a shared key. The delivered design issues a short-lived signed token per pass, refreshes it on a visible countdown, and verifies it server-side against live membership before the gate responds. The same conclusion was reached independently by the academy's own IT contact.
Built against hardware, not around it
The access terminals were already installed and were not going to be replaced. The system was designed to work with them rather than propose a rip-and-replace, which is the difference between a project an academy can approve and one it cannot.
Start here
Tell us what is breaking.
Not a brief. Not a spec. One message describing the thing in your business that keeps costing you money.
Or email contact@victvest.com · Call +971 50 208 1105
Whatever is losing you money, in your own words. No form, no discovery questionnaire, no gatekeeper.
Either we can fix it and we say how, or we cannot and we point you somewhere better. You will know inside a day.
If it fits, the next step is a paid diagnosis at a fixed scope and a fixed price. It comes off the build if we go ahead.