RekenTrainer

A tiny local PWA for daily arithmetic practice — hosted on GitHub Pages, built for holiday weeks and quick sessions without worksheets, ads or guessing what happens to the data.

2026 / Cursor / JavaScript / PWA

A small Progressive Web App for daily arithmetic practice: addition, subtraction and times tables. Built as a vanilla HTML/CSS/JS project in Cursor, installable on a phone, with no account and no backend.

Try it: tomashanedoes.github.io/rekentrainer — hosted on GitHub Pages, not on this server.

Install on your phone

No app store. Open the live link in your phone browser, then add it to the home screen so it behaves like a normal app.

Android (Chrome)

  • Open the live link
  • Tap the browser menu (⋮)
  • Choose Install app or Add to Home screen
  • Confirm — the icon appears on the home screen

iPhone / iPad (Safari)

  • Open the live link in Safari (not Chrome)
  • Tap Share
  • Tap Add to Home Screen, then Add
  • Open it from the home screen next time

Progress stays in the browser on that device. Clearing site data removes it — use the in-app backup code if you want a copy elsewhere.

Why I built it

The usual homework sheets from school work fine at the kitchen table. On holiday they are a hassle to pack, and for a quick five minutes between other things the friction of finding the right sheet is often enough that practice does not happen.

There is also the familiar request: can I play a game on your phone? Usually the answer is no. Arithmetic practice is different — if the phone comes out for that, I am fine with it.

RekenTrainer home: Adventure, practice a topic, or a 60-second quick round

I could have picked an existing app. Most of them come with ads, and I never quite know what happens to the data in the background. Building a tiny local PWA meant the practice stays on the device, and the interface stays quiet enough that short daily sessions actually happen.

What it does

  • Adventure: a path of levels, from neighbour numbers and doubles through bridging ten, up to times tables
  • Practice a topic: pick addition, subtraction or a specific table and work on that skill
  • Quick round: 60 seconds of mixed sums
  • Multiple profiles on one phone, with stars, level progress and a backup code
Pick a topic: addition, subtraction and times tables with star progress

How the practice is shaped

I looked into approaches that help people learn arithmetic, and folded those ideas into the practice engine — not as a separate research write-up, but as rules the app actually follows.

Each round is ten sums. That is short enough for a limited attention span, and long enough to get a real signal on how the round went. The next ten are shaped from that.

  • Ten out of ten: the next level steps up.
  • A harder round: the following ten ease off, so practice stays in a range where it still feels possible.
  • Keep the pleasure: the point is to leave someone with the experience that they can do it — not that they failed another worksheet.

Under the hood that sits near a ~75–85% accuracy target (challenging but doable), with a short review queue for missed sums and mastery states per skill (learning → stable → mastered).

Two very different habits share one app. One person finds the basics hard; a teacher had said that short daily practice is what helps the sums become automatic. Another already likes maths and treats each round as a challenge. Separate profiles keep those paths from colliding.

Adventure mode: a locked path of levels from sums to 10 up to bridging ten

Hosting

The app is a static PWA on GitHub Pages. This site only links to it — nothing from RekenTrainer runs on the VPS that serves hanedoes.nl.

Source and install notes: github.com/tomashanedoes/rekentrainer

Stack

Vanilla JavaScript as a Progressive Web App, designed and iterated in Cursor. Small enough to keep in a single project folder and open on a phone in seconds.

← Projects