Tell real words from decodable nonsense words, then spell by ear
A two-half football match that trains the two halves of literacy: decoding in the first half, spelling in the second.
The first half is a playable version of the Year 1 Phonics Screening Check, the statutory
assessment in English primary schools. In it, children read 40 words, half of them pseudo-words
β made-up but phonically regular strings like fod or shob, presented as alien names. The
point of the nonsense words is that they cannot be recognised by shape or guessed from the first
letter, so they show whether a child is genuinely decoding rather than remembering. This game
puts the same idea on a pitch: real word β shoot at goal, alien word β give it to the alien.
Crucially the app does not read the word out first. Hearing it would turn decoding into listening. It speaks the word after a correct answer as confirmation, and after a wrong one it sounds the word out and brings it back later in the half.
The second half is dictation: the app says a word and the child types it on an on-screen keyboard with no letters supplied β the sequence has to come from memory.
| π₯ | A real word β tap GOAL |
| π½ | A made-up word β tap ALIEN |
Alien words in the pool: fod Β· zat Β· bep Β· vum Β· shob Β· chid Β· thog Β· keeb Β· narp Β· quog Β· sprot Β· dree
Stuck? π Sound it out reads the graphemes β sh-i-p, not s-h-i-p β but never the whole
word. That part stays with the reader.
| π | Listen to the word |
| β¨οΈ | Tap the letters β no tiles, no clues |
| β | Correct letters stay put, the rest clears, try again |
| π» | After two attempts a faint ghost word appears |
| β½ | Spell it and the crowd goes up |
The whistle blows, the goals are counted, and the best score so far is remembered.
- π Β Blending sounds through a whole word instead of guessing from the start
- π§© Β Recognising digraphs (
sh,ch,th,oa,igh) as single sounds - βοΈ Β Producing a spelling from memory, not from a choice of tiles
- The keyboard is in ABC order by default β a five-year-old hunts through the alphabet, not a QWERTY layout. A setting switches it.
- A missed word is pushed back into the queue so it comes round again, but the queue is capped so the half always ends.
- Grapheme splitting is greedy and digraph-first, which is what makes the sounding-out correct.
| Game | What it is | |
|---|---|---|
| π Jack's Ten Frames | See numbers in fives, make ten, then add past ten on ten frames | βΆ play |
| β° Jack's Clock | Read the clock and set the hands β o'clock, half past, quarter past, quarter to | βΆ play |
| π― Jack's Big Numbers | Tens and ones, adding and taking away all the way to 100 | βΆ play |
| π Jack's Sight Words | The twenty most common English words on big cards β tap one and hear it read out | βΆ play |
| π Jack's Apples | Trace 1β20, then fill the missing numbers into the apple grid | βΆ play |
| π₯ Jack's Match | Tell real words from decodable nonsense words, then spell by ear | βΆ play π this one |
| βοΈ Jack's Letters | Finger-trace all 26 lowercase letters in the correct stroke order | βΆ play |
| π’ Jack's Numbers | Count, add and subtract with footballs β to 10, then to 20 | βΆ play |
| π Jack's Words | Hear a word, build it from letter tiles, then read it in a sentence | βΆ play |
| βοΈ Jackies Schach | Full FIDE rules with a coach that marks the safe squares (German) | βΆ play |
All ten on one start page: jackbenn.ing β newest first, homework on top, chess always last.
Every game in this organisation is one self-contained index.html β no build step, no
framework, no package manager, no analytics, and no network calls beyond its own voice clips (chess also loads its rules engine, chess.js, from
jsDelivr, and Sight Words its font from Google Fonts).
That is a deliberate constraint: a game a child depends on should still work in five years,
and a parent should be able to read the whole thing in one sitting.
- Speech β pre-rendered clips of the neural
en-GB-SoniaNeuralvoice, played through Web Audio, with the Web Speech API as the fallback. TheAudioContextis created inside the βΆ tap, because iOS refuses to start audio any other way. - Progress β kept in
localStorageon the device. Nothing is collected, sent or stored anywhere else. - Made for an iPad mini in either orientation: finger-sized targets, no hover-only
interactions,
prefers-reduced-motionrespected.
Run it locally:
python3 -m http.server 8000The start page at jackbenn.ing is built from
google814/Jack, which is the source of truth. The repos
in this organisation are copies kept in step by tools/sync-game-repos.sh in that repo, so
each game also has its own page and its own link.

