SURIMA Academy
Seven rungs from reading tiles to scoring a hand.
SURIMA Academy teaches a new riichi player the whole ladder in Bahasa Indonesia, and grades every drill with the same engine that scores a real hand.
How a module runs
5 steps
- ModuleOne rung of the ladder
- LessonOne rule, worked through
- QuizTen seeded questions
- ExplainYour own tiles, line by line
- MasteryXP, rank and a TAMAT stamp
The next module opens
Scoring is where beginners stop.
A hand can look complete and still be worth nothing without a yaku. Han and fu decide what it pays, and a new player has to hold both in their head at the table.
Most explanations assume the vocabulary. The SURIMA community plays in Indonesian and speaks the Japanese terms anyway, so a lesson written in English for a different audience never quite lands.
A drill written by hand drifts away from the rules it teaches. One wrong answer key is enough to teach the wrong thing with confidence.
One ladder, one engine.
The lessons are the pedagogy. The engine is the source of truth. Neither is allowed to disagree with the other.
Rules from scattered videos
One ordered ladder
Tiles, shapes, yaku, han, fu, score, efficiency. You cannot count fu before you can read a hand.
Memorised scoring tables
Computed answers
Every drill answer key is produced by the same scorer that settles real hands.
Generic wrong-answer text
Your own hand, explained
The decomposition, each yaku, each fu line and the payment arithmetic.
Progress nowhere
Progress on the device
XP, accuracy, streak, rank and a shareable certificate, stored locally.
A course that cannot drift from the rules.
The engine emits ids and numbers, never prose. The interface turns them into Indonesian or English. Two guard tests keep it that way.
The seven-module ladder
Tiles, shapes, yaku, han, fu, score and tile efficiency, in a fixed teaching order. Each module ends in a generated quiz.
Drills generated backwards
A hand is built to exhibit the concept, then the engine runs forward to produce the answer. Every question is seeded and reproducible.
Explanations from the hand
A wrong answer is explained through the player's own tiles: which yaku counted, which fu lines applied, and how the payment was reached.
Progress and mastery
XP per correct answer, combo, no-hint and daily bonuses, a rank ladder from Pemula to Meijin, and TAMAT stamps for mastered chapters.
Bilingual, by ids
Indonesian and English share one answer key. Grading keys off ids, never display strings, so a hand grades identically in both languages.
A certificate you can share
A square or story certificate image generated from local progress. The glossary is searchable and earns no points.
No backend, on purpose.
Progress is a promise kept in the browser, not an implementation detail.
- React 19 · TypeScript
- The trainer interface, split into a pure engine and a translating UI.
- Vite · Tailwind 4
- A static build, deployed to Vercel and Netlify.
- localStorage
- Points, accuracy, streaks, mastery and the edition choice.
- Pure scoring engine
- Yaku, han, fu, limits and payments; the same module every lesson and drill reads.
A learner can sit down and play.
Bilingual training: lessons, practice, a certificate, and progress kept on the device. Every wrong answer is explained with the hand that produced it.
- The ladder is the navigation, the course map and the mastery total.
- Every drill answer is computed, never transcribed.
- Indonesian is the primary voice; riichi terms stay Japanese.
- Nothing leaves the machine.

Client
SURIMA
SURIMA is an Indonesian riichi mahjong community based in Surabaya. The Academy is its teaching tool, published at learn.surima.id alongside the community's league and scoring apps.
Send one workflow. We'll look at it with you.
Tell us the task that costs your team the most hours, and how it runs.
The first conversation is free, with no commitment.