Games where the question is the gate.
Most learning games are a worksheet in a costume. Play for ninety seconds, sit through a quiz, go back to playing. Gamecakes doesn’t work like that. The maze wall has a sum written on it. Answer it and the wall opens. The question isn’t the toll you pay for the fun. It’s the way through.
It’s a walkable cake town with 22 games in it, across maths, reading and chess. Every question is pitched at what that child can actually do, and it moves as they get better.
You run your own copy. Your family’s data lives in a database only you can reach, you decide what your kids can play, and there is no shop, no ads and nobody selling to them. That isn’t a promise in a privacy policy. It’s the architecture.
Sixteen of the games run in your browser right now. No account, no password, nothing saved. You don’t have to take my word for any of this — go and hit a maths wall and see what happens.
The hub
A town you walk, not a menu you scroll
Everything starts in the town. It’s a real 3D world. You steer a cupcake down frosting streets, past a chess club and a fishing hole and a castle, and walk up to a booth to play. Regions start hidden. You open one by walking to its edge and paying in cookies you earned by practising.

The map isn’t a grid of buttons, and that’s deliberate. A kid deciding which way to walk is a kid deciding what to practise next. Two of the thirteen regions belong to individual kids, who decorate and upgrade them.
The games
Twenty-two of them, and the maths is load-bearing
Games are the point of contact, so they have to be worth playing on their own. Cake stackers. A crossy-road hopper. A sandcastle you knock down with a slingshot. A maze whose gates only open when you solve what’s written on them. Sharks and minnows. A downhill skier. Some are 2D, some are fully 3D.

Eighteen of them carry a Maths / Words toggle. The same game is an arithmetic game or a reading game depending on what a kid needs today. The game doesn’t change. The gate does. That is most of the reason there are 22 games here and not 44.
Two of them were designed by the kids themselves, and the kids own the decisions about how those play.
Not just sums
Chess Island, and 4,900 puzzles nobody had to write
Three of the games aren’t arithmetic at all. Chess Puzzles, a full game of Chess Challenge against a Cakey opponent, and Cakey Checkers. They sit on their own island and report into a third subject: logic. Maths and reading are the two everybody expects. This is the one that changes what the app is for.
The puzzle library is 4,900 real positions, pulled from the open lichess database and then cut down hard. Short lines only. Well played and well liked. Instructive tactics and mates, nothing cute. Every one of them re-checked move by move, so the solution is legal and the mates actually mate. They are bucketed by rating from 500 to 1900, 350 to a bucket, which gives chess the same steady ramp everything else in the app runs on.
A kid who has never played and a kid two years in both open a position they can solve. That is the whole trick. Both chess games feed one mastery number, so grinding tactics counts when they sit down for a full game, and checkers keeps its own score because it is its own skill.
How it adapts
Questions that meet the kid where they are
Every kid has a grade. Every question carries a target grade. A kid only ever sees questions inside a one-grade band around their own. A kindergartener is never shown 12 × 12, and a second grader is never asked what letter apple starts with. That band is the floor and the ceiling. Inside it, difficulty moves.

Inside the band, each skill has a tierfrom 1 to 10. Getting things right moves the tier up. Struggling moves it down. It is measured on a rolling window rather than the last answer, so one unlucky round doesn’t undo a week, and one lucky guess doesn’t promote a kid past what they can do.
Grades advance themselves every August. A parent sets a grade once, and the game never quietly serves last year’s content because somebody forgot to update a field.
Aim it
A grade is a guess. You know better.
Here is what no adaptive engine can know. It can’t know your kid’s class spent October on money. It can’t know there is a times-tables quiz on Friday. It can’t know that fractions are the thing causing tears at the kitchen table on a Tuesday night. You know all three. So there is a place to say so.
Every kid has a “What we’re working on” card on the grown-up side. Pin a maths kind: division, fractions, shapes, money, place value. Pin a reading kind: rhymes, sight words, spelling, context clues, word roots, parts of speech. Pin a level next to it, or leave the level alone and let the engine keep driving. Leave the card blank and the grade default stands. The override is the exception, not the configuration.
That is the difference between practice that is roughly the right level and practice that is the thing they are stuck on this week. Sixty-four skills are tracked, each mapped to the standard it belongs to, across maths, reading and logic. You are not picking between two subjects. You are picking a target, and the games a kid already plays start serving it on the next round. Nobody has to be told they are doing extra work.
Then there is the thing that actually came home in the backpack. Paste Friday’s twelve words into From school and those words become the questions, at any level, until you switch the list off. What the words are FOR is yours to say: spell it, read it, or what it means. The same twelve words are a spelling test in second grade and a vocabulary unit in fifth, so the app stopped guessing which.
Meanings are typed the way you would write them anyway, one per line, as brave = not afraid. The wrong answers a kid sees are the other real definitions off the same list, never invented ones. A word you have not defined yet is still a perfectly good spelling word, and the mode that needs it waits, visibly, until you get to it.
The settings screen isn’t the ceiling
You have the code. The question generators are plain functions with tests sitting next to them, and the skills catalogue is rows in a database you own. If your school teaches something the app doesn’t generate yet, that is a file you can edit, not a support ticket you file and wait on. Nobody else gets to decide what your kids are allowed to practise.
The economy
Sugar Tokens, and things worth saving for
Practice pays. Kids earn Sugar Tokens for playing, with a bonus when a skill tiers up, and parents can grant extra for things that happen away from the screen. Tokens are the only way to get anything. Nothing is bought with real money, because there is no shop, no ads and nobody to pay.
Earning
- Playing a round. A steady drip, and the bulk of all income
- Tiering up a skill. A bonus for getting genuinely better
- A parent grant, for a chore, a hard week, a kindness
Spending
- Unlocking a new region of the town
- Cupcake parts, for decorating their character
- Upgrading their own land
- Renting a vehicle, or unlocking a locked game

The ladder is tuned so the cheap things are reachable in a sitting and the good things take a week. That gap is where the saving happens, and saving is most of the point.
The Story Oven
Kids file tickets, and the tickets are real
Every game has a button that lets a kid say something is broken, or that they want something different. It goes into the Story Oven, their own queue, in their own words, which they can check whenever they like.

When the thing they asked for ships, it shows up in the dev log with a “🧁 You baked this!” badge on it. Seeing your own idea in the list of what got built is the entire reason the feature exists. Kids learn that ideas get triaged, that some wait, and that shipping is a thing which happens to people who ask.
For grown-ups
A dashboard that answers the actual question
The parent side sits behind a grown-up PIN, and the elevation expires on its own. A kid holding the iPad gets the PIN screen, never the dashboard, because the honest answer to “how is my kid doing” is not something they should read over your shoulder.

Add as many kids as you like. There is no limit and no per-child cost. Each one gets their own profile, PIN, grade, token balance and progress, tracked separately. It was built for two, but nothing in it counts to two. (The town currently has two decoratable per-kid lands; every other part of the game scales to as many children as you add.)
- Where they actually are. Each skill against its grade-level tier, above or at or below, rather than a percentage that means nothing.
- What to work on. Pin the maths and reading kinds their class is covering right now, and the games follow.
- From school.Paste this week’s word list and say what it is for: spelling, reading, or meanings. Those words become the questions.
- Observations. Note what you saw off-screen. Photograph a page of homework and the form fills itself in from the picture.
- Sugar Token grants. Reward the things the game cannot see.
- Their tickets. Read what your kid filed, and decide what gets baked.
More dev
Two of the contributors are agents, and they ship with the repo
Adding a game is a known path. There is a guide, a registry entry, a booth placed somewhere in the town, and a review bar that cares about one thing: whether a child has a better time. A game that can’t be walked up to isn’t shipped.
The less usual part is that two of the people who help build them are checked into version control. .claude/agents/ holds a creative director and a three.js engineer, and they come down with the clone.
The creative director
Owns how the town looks. Terrain, paths, region gates, booths, foliage, signs, lighting, motion. It knows the real palette, the real characters and the real renderer, so it answers with a file and a decision instead of “make it more whimsical.” It also knows the constraints, which is why it won’t hand you an effect that dies on a tablet or buries the gameplay under itself.
The three.js engineer
Owns how it is built. The walkable town engine and the dozen game engines under it are hand-written, imperative three.js. No React-Three-Fiber, no physics engine, no asset pipeline. It knows that, and it knows the specific ways this codebase bites: what leaks between rounds, what quietly drops frames, what has to be torn down by hand.
They split the way a good studio splits. What colour, what shape, what mood belongs to the director. How is this built, why is it slow, what leaked belongs to the engineer. Ask the wrong one and it will tell you so.
That is the reason they live in git rather than in somebody’s chat history. The next person to build a game starts holding the context instead of spending a weekend rediscovering it. Your own games go in registry.local.ts, a file upstream never edits, so you can build for your kids and still take every update without a merge conflict.
Open source
Run it for your own kids
Gamecakes is MIT licensed and built to be forked. You bring your own database, which means your children’s data sits in a project only you can reach. Not on somebody else’s server, and not in an account that can be sold.
Setup is a template, a config file and one command. There is no code to edit to add your own kids.
What you need
- A Supabase project.This is where your family’s data lives, and it is the reason nobody else can see it. The free tier is plenty for a household.
- Somewhere to host it. Vercel is the path of least resistance and its free tier runs this fine. Anywhere that serves a Next.js app works, including a machine in your house.
- About fifteen minutes, once.
Both have free tiers that cover normal family use. Gamecakes itself costs nothing and asks for no payment details. There is nobody to pay.
The code is free to use and change. The name Gamecakes, the character Cakey and the logo are not. Run your copy under your own name.