Skip to content
Janclab Matija Janc · Platform & AI engineer
complete

Muay Thai Combo Trainer

An Android trainer with 107 combos and hands-free voice control whose ten static routines keep working across every newly generated session.

Live, in your browser — not a screenshot.

107 combos across 7 types
10 voice routines address slots, not combos
the same 10 routines survive every new session
60 s auto-collapse, then hands-free again

Problem

During training my hands are wrapped and gloved, so a touchscreen is useless. I needed to generate a ten-combo session before the round, then reveal any combo by voice without touching the phone.

What I built

An Expo/React Native Android app with 107 combos, filters, random sessions and 60-second auto-collapsing cards. Google Assistant deep links and an in-app recognizer both route to the same slot-opening action; the recognizer checks alternatives and known mis-hearings for noisy gym use.

The hard part

Assistant routines are static, but every generated session is different. Binding a routine to a specific combo would require 107 routines—or rebuilding them before every workout.

The deep link therefore addresses a slot, not a combo. muaythai://combo/3 means “open whatever is currently third.” Ten routines are configured once, while the app resolves each stable ordinal against live session state. That small indirection turns a static automation platform into a dynamic hands-free interface.

Results

A whole session now runs hands-free: call a slot, see its steps, train for 60 seconds, and move on. Regenerating all ten combos requires zero routine changes.