I went looking for a good math app for my daughters and mostly found two kinds: free ones covered in ads that wanted my kid's attention more than her arithmetic, and good ones that wanted fifteen dollars a month forever. Multiply that by two kids and a few years and you're paying for a used car so someone can practice their times tables.
So I built the thing I actually wanted, which in my head was always Duolingo meets Fruit Ninja. Streaks, XP, badges and a lesson map from the one. Stuff flying across the screen that you swipe at from the other. Math Buddies: Wilderness Trail went to the App Store this morning, and it is a K–8 math game where you walk a national-park trail with a cartoon pet and catch the biscuit that has the right answer on it.
The Fruit Ninja part
Questions don't sit in a list waiting to be tapped. Your pet asks for a biscuit, biscuits drift up across a forest, and you swipe the one with the right answer. Wrong ones cost you a heart. There is also a category of object called an ick, which you are supposed to leave alone, and which is the funniest word in the entire codebase.
Nine modes, all named the way a kid would name them rather than the way a curriculum designer would: Treat Time, Zoomies, Pick-Up Party, Playdate, Bath Boss, Build It, Number Line Trail, Find the Mischief, Story Rescue. Bath Boss is a boss fight where correct answers calm the boss down. Zoomies is a speed round. Playdate is a race against another pet.
The Duolingo part
Streaks with a little campfire that lights up. XP and levels. A trail of stops you walk one at a time, from Kindergarten counting up to Grade 8, 1,145 lessons across nine grades. Merit badges shaped like national-park patches, 58 of them, with names like Paws in Motion, High Five, Century Scout and Brave Explorer. Get a whole round right on the first try and the app shouts PERFECT PAWS at you, which never stopped being satisfying to me either.
The cast came first
Before there was any curriculum there were eight pets. Four cats, four dogs, one line of personality each:
| Pip | Pathfinding scout who tracks every trail marker. |
| Mochi | Calm campfire coach for tricky problems. |
| Shadow | Night-trail tracker, great at spotting patterns. |
| Nori | Spirited trailblazer with boundless zoomies energy. |
| Buddy | Chief trail guide and enthusiastic hype pup. |
| Beans | Corgi trail scout powered by trail biscuits. |
| Scout | Alpine expedition pro who never drops a number. |
| Dumpling | Loyal junior ranger with big reactions and a bigger heart. |
There is also a raccoon named Rue who introduces each unit and hands out trail facts. My favourite is that baby raccoons are called kits.
Whichever pet you pick stays with you through every lesson and every celebration. That was non-negotiable in this house.
Two very honest playtesters
My daughters are 8 and 11, which by lucky accident lands them almost exactly on the app's own grade labels. Grade 3 is "Ages 8–9". Grade 5 is "Ages 10–11". So the two people playing my builds at the kitchen table were the actual audience for the middle of the curriculum rather than a stand-in for them.
This is a wildly better feedback loop than anything I could have designed. An adult testing a kids' app tells you what they imagine a child would find confusing. A child simply gets confused, out loud, in front of you, at the precise moment the screen fails. The 11-year-old will tell me a mechanic is babyish. The 8-year-old is deep in multiplication, which is the hardest stretch of the whole path to make fun, because it's where math stops being counting and starts being structure.
I also managed to ship the same bug three times, and only a kid could show it to me. Every lesson opens with a no-pressure warm-up question. Mine kept asking a plain multiple-choice question right before a Build It or Number Line stop, so you'd answer "6", feel great, and then get dropped into a screen that wanted you to construct the answer out of blocks. Nothing crashed. Every test passed. It just felt broken. There's now a check that won't let the warm-up disagree with the lesson behind it.
Being nice on purpose
Two things I'd defend to anyone.
Wrong answers get a specific reply instead of a shrug. Every wrong option carries a guess at the mistake behind it, so tapping 12 when the answer is 6 gets you the pet pointing out that it's twice as big, not a red X and a "try again."
And you can switch every timer in the app off and still earn the same treats, stars and badges. A slower reader isn't a worse learner, and an app that quietly pays them less for the same work is teaching something I don't want in the house.
How one dad makes 1,145 lessons
Not by typing 1,145 lessons. A lesson stores a skill id and a handful of numbers, never the questions themselves. The questions get generated from a seeded random number generator, so the same lesson always produces the same eight questions, which means I can generate every question in the entire app inside a test and check them all at once. Twenty-one scripts do exactly that on every run. None of them open the app. The thing most likely to be wrong in a math game isn't the buttons, it's the math, and a bad fractions question that only appears once every fifty tries is never going to be found by clicking around.
That's the whole trick. 1,145 lessons stops being 1,145 things to proofread and becomes 221 generators to get right.
Where to find it
It's on the App Store now. A browser version goes live at mathbuddies.app shortly, which matters more than it sounds like, since a Chromebook can open a URL without anyone installing anything. Android follows.
Unit 1 of every grade is free, so you can put the real thing in front of your kid before deciding anything. After that it's a one-time $29.99 unlock covering all nine grades on the device, or $4.99 a month if you'd rather. No ads anywhere, no accounts, and no analytics of any kind. Progress lives in one key on the device and never leaves it, which started as me cutting scope and turned into the feature I'm proudest of. I can't leak what I never collect, and a kids' math app has no business knowing anything about the kid.
Next up is multiple learner profiles per device, which the 11-year-old has requested more than once, and with increasing volume.
Math Buddies: Wilderness Trail is built with Expo and React Native. K–8, nine game modes, eight pets, no ads.