Math Maze
Written on Wednesday, 4 November 2026 at 00:00.
Tags: react, typescript, game, netlify.
My 8-year-old son finds math hard, so we made a game we can play together, each on our own computer: Math Maze. He had ideas too, like making the maze look like a tropical island ๐๏ธ
We explore the island together. Locked doors open with a math question. Purple team doors and bridges have two locks, so we both have to solve one. From level 2, silly ๐พ monsters wander around and challenge you with a sum. Every ๐ช coin goes into a shared team wallet, and we only escape when we both reach the treasure chest. Each new maze is a bit bigger, and from level 4 it splits into islands joined by bridges.
I tuned it to how he learns:
- Each player picks what to practice: plus and minus up to 20, 100 or 1000, or times tables and division.
- No timer, and wrong answers aren't punished. After one miss you get a hint (counting steps, tens then ones, dot grids for times tables), and after three it shows the answer.
- Facts you miss come back more often until you get them right first try.
- +, โ, ร and รท each have their own color, because he kept mixing them up.
- Over-the-top celebrations: confetti, bursting doors, a bouncing win screen ๐
- Your partner sees your question and hints, so I can help him along.
It speaks English and Dutch, picking the language from your browser, and you can switch. In Dutch, division is written as ":" like at school.
It's React + TypeScript + Vite, hosted on Netlify as a static site with no backend. Players connect peer-to-peer over WebRTC with PeerJS: the host's browser runs the game and sends the state across.
