I built JaaiTang because flashcards never stuck. What I needed was to learn Thai numbers the way they actually appear in daily life: a cashier announces a price in Thai, you have seconds to react and pay the exact amount. No reading. No translation. Just recognition under pressure.
The app is on the iOS App Store. Simple premise: the cashier tells you the price in Thai. You pick the right coins and bills from a pile on the counter and hit CHECK. Get it right, you move to the next transaction. Get it wrong or run out of time, you see what went wrong and try again.

How It Actually Works
You start in Training mode where the price displays on screen while the cashier announces it in Thai. This lets you build confidence matching the sound to the number. Once you're ready, Challenge mode hides the display—you hear Thai only and must act.
Three difficulty levels scale the complexity. Easy starts with prices from 1-10 baht (just coins). Medium goes up to 100 baht (mixed coins and notes). Hard pushes to 999 baht where you need to think about optimal combinations.
You pick your session length: 1, 2, or 5 minutes. I built this flexibility because learning happens in short bursts. Five minutes on the skytrain is better than nothing.
The coins and bills are real Thai denominations with authentic designs: 1, 2, 5, 10, 20, 50, 100, 500 baht. You tap them into the payment zone. The app checks if the total matches exactly. There's a "PERFECT" bonus if you use the fewest pieces possible—which teaches you to think about efficient combinations, the same way you do at an actual counter.
Why The Pressure Matters
In a real Thai 7-Eleven or market, the transaction moves fast. The cashier doesn't wait while you convert baht to coins in your head. By putting a timer on the game I'm forcing you to develop speed. The repetition under constraint trains automatic recognition instead of conscious translation.
After a few sessions you stop thinking "that sounds like 47" and start just knowing. Your hand reaches for the coins because you've heard and reacted to that number dozens of times.
The Build
I spent 1-2 weeks on the whole project. Phaser 3 for the game engine, Capacitor to wrap it as an iOS app. Unity would have been overkill. Phaser is lightweight and let me iterate quickly on the feel of dragging coins. Capacitor meant I built once and deployed to iOS without learning platform-specific tools.
The audio is native Thai recorded by a speaker who sounds like an actual cashier—calm but quick. I covered the price range people actually encounter: singles, teens, multiples of 10, common market prices. The voice varies slightly so each price doesn't sound identical after repetition.
The visual design is functional. A wooden counter. Scattered coins and bills. A simple feedback for right/wrong. Nothing distracts from the core loop: hear, think, act.
What I Use Daily
I use JaaiTang myself almost every day. Waiting for coffee, sitting on the skytrain. Five-minute sessions keep the skill fresh. When I'm in Thailand the real cashiers no longer feel intimidating. I hear the price and my hand moves. The transaction finishes smoothly.
That's the validation. Not metrics or feedback. Just the fact that I built something I actually use because it solves a problem I have every time I handle Thai money.