Elias Lecomte

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.

Math Maze