Used by Warriors prepping for React interviews
Kata
Fix broken React components in a live sandbox. Earn Ki.
Drills
Drill the concepts behind every bug. Any device.
Leaderboards·Company tags·Tag filters·+2 more coming soon
Premium access launches soon.
The approach to learning bug fixing is excellent. Simple, elegant, and it just works.
Found it during React interview prep. Helped me recognise patterns and come up with solutions faster.
Good for staying sharp on the fundamentals when AI is writing half your code anyway.
The bugs feel like real mistakes you've probably already made. That's what makes it click.
A great way to keep practising, especially when you don't have an active project.
The approach to learning bug fixing is excellent. Simple, elegant, and it just works.
Found it during React interview prep. Helped me recognise patterns and come up with solutions faster.
Good for staying sharp on the fundamentals when AI is writing half your code anyway.
The bugs feel like real mistakes you've probably already made. That's what makes it click.
A great way to keep practising, especially when you don't have an active project.
Inside the dojo
Read the symptoms
Each kata describes exactly what the user sees when the component is broken - not what to fix. A symptom tells you the visible failure. A hint nudges you toward the relevant React concept without giving away the answer. Constraints define what a valid fix must and must not do. You learn to read broken behaviour and reason about useEffect, useState, and hook interactions the way you would in a real codebase - not by copying a solution.


Study the principle
Kata put you in the editor. Drills put you in the exam. 150 multiple choice questions across White, Blue, and Black belt - useState, useEffect, useCallback, useMemo, useReducer, useRef, stale closures, dependency arrays, object mutation, batched updates, cleanup functions, React.memo, key prop behavior, async state, and more. Pick an answer and the reasoning appears immediately: why the correct option is right, why each wrong one fails. Every completed session keeps your daily streak alive. Find the gaps in your React knowledge before an interview does.
Earn your rank
Every correct fix earns Ki and updates your belt rank. White Belt kata cover the fundamentals - controlled inputs, missing dependencies, basic state updates. Blue Belt kata require understanding how hooks interact - stale closures in useCallback, missing cleanup in useEffect, object mutation bypassing useState. Black Belt kata require architectural reasoning - wrong action types in useReducer, stale custom hook dependencies, and using useRef where useState is needed. Ranks are earned through practice, not time.


Pick your battle
Browse all 51 kata filtered by belt or topic. If you have six months of React experience, start at White Belt - visible bugs, single concept fixes, immediate feedback. If you are preparing for a senior interview, work through Blue and Black Belt kata covering stale closures, effect cleanup, reducer design, and hook composition. Train on the concepts you need. Skip the ones you already know.
Strike lands true
When you submit a fix, automated tests run against your code in a live React sandbox. The tests are adversarial - they are written to catch the specific bug described, not just to verify the happy path. You cannot pass by deleting code, hardcoding a return value, or making an unrelated change.

Three belts · Three difficulties
Wrong prop, typo, missing key. The fix is near the symptom. +10 Ki per solve.
Stale closures, missing deps, async races. Requires hook knowledge. +25 Ki per solve.
Memory leaks, context misuse, edge cases. Symptom far from cause. +50 Ki per solve.
Deep-dive into performance leaks and complex architectural flaws.
Begin →"A master hunts down the errors that hide in the shadows of logic."- Master Red-Edge
Start here
From missing useEffect dependencies to stale closures in useCallback and object mutation bypassing useState - every kata targets a real bug pattern that senior React developers actually make.
Force Refresh Does Nothing
Search Hook Ignores What You Type
Completing a Task Has No Effect
Click Counter Never Shows on Screen
Form Keeps Showing the Previous User
Uncontrolled Input Ignores Reset