Back to projects

Building Plusky

Plusky is a math game that teaches the BC Grade 1 math curriculum. Kids repair floating sky islands, and a buddy tutor talks them through each one. It is free to play, and Chapter 1 is free.

Role
Developer
Stack
TypeScript, Phaser, Vite, Vitest, Supabase, Stripe, Cloudflare Workers, Capacitor
Status
Live and free to play

Play free at plusky.ca  ·  plusky.ca

The Plusky chapter map: floating islands, some still locked, a Grown-ups button, and the buddy saying "Welcome back! The next island is waiting."

What the game is

Every island is broken, and fixing it takes math. Count the planks on a bridge, finish a flower pattern, find how many more make 10. The game covers the whole BC Grade 1 math curriculum in 12 chapters, 70 islands and 30 skills. A session is about 15 minutes, and there are no ads. Storm Knots is a co-op mode for playing together, and grown-ups have their own area, reached from the map.

  • 12 chapters
  • 70 islands
  • 30 skills
  • 15-minute sessions
  • 0 ads
A ten-frame counting question on a floating island: "How many planks are on the bridge?", with answer choices 10, 7 and 9
Counting planks with a ten-frame. The rules engine picked the question and knows the answer.

How a lesson works

A rules engine picks the math and checks every answer. AI only words it. It never decides what is correct. For a game for young kids, the thing that says right or wrong has to be plain code I can test, not a model that might guess.

A wrong answer costs nothing. The buddy asks a guiding question first. If that does not get there, it counts it out with pictures, so the kid sees why the answer is what it is.

A pattern question on a floating island: "Which flower comes next?", a row of red and purple flowers labelled A B B A B B A, and three flower choices
Patterns, one of the 30 skills.

The voice

The buddy's voice was recorded with ElevenLabs. Every clip was then checked the same way: I transcribed it back to text and compared that with the script. A voice line that says something slightly different from the words on screen is easy to miss by ear, and a transcript catches it.

A story scene on a floating island: a beaver from The Timbers says "This is our plank yard. We stack planks in two rows of five." next to the buddy and a girl in a hard hat
Story scenes set up the math before the island asks for it.

Building it

The game is written in TypeScript on Phaser 3.90 and built with Vite, with tests in Vitest. Supabase handles accounts and saves, and Cloudflare Workers run the server side. Billing goes through Stripe, with two plans: Member at CA$9.99 a month and Family at CA$14.99 a month. The Android app is the same game wrapped with Capacitor, with the package name ca.plusky.app, ready for Google Play.

Built with Claude Code: TypeScript, Phaser, Vite, Vitest, Supabase, Stripe, Cloudflare Workers, Capacitor.

The Number Workshop: the equation 1 + ? = 10 with one filled dot in a ten-frame, a number pad, and the buddy asking "How many more make 10?"
The Number Workshop, for making 10.