Progression
“Endless” has to feel like it is going somewhere, not just never stopping. A progression layer sits on top of the puzzle — and every mechanic in it is forgiving by construction.
Absolute
Nothing is ever gated.
No level, rank, milestone, streak, or record unlocks, restricts, or changes anything. Every theme and difficulty is available from first launch, forever. Progression is decoration — trophies, animations, a ring filling in. Reading it any other way is reading it wrong.
The Word Collection Is the Spine
“1,847 of 11,281 words discovered”, with a ring per theme. This was chosen over a generic XP grind because it is intrinsic to the content — and because it pairs exactly with the bag draw: the no-repeat guarantee means nearly every puzzle delivers new words, so the ring always moves and progress never stalls.
42
Authored categories
43 including Potpourri
14,592
Category memberships
what the corpus files total
11,281
Unique words
the denominator the player sees
The difference between the middle and right figures matters: 2,502 words belong to more than one category — SALMON is an animal, a food, and a marine creature — and a word discovered in three themes is discovered once. The unique count is computed from the corpus at import rather than hardcoded, so it cannot drift from the content.
226 Levels, Derived
Never stored, always computed
level = 1 + floor(words / 50)
1 + floor(11,281 / 50) = 226
About one level every four to five puzzles. Score can be farmed by replaying Easy puzzles; the collection cannot, so every level-up is guaranteed forward progress. WORDS_PER_LEVEL is the one tuning knob for pacing.
Nothing derived is ever stored — not level, not meter fill, not theme mastery rank. A stored copy can disagree with the collection after a restore or a missed write; a derived one cannot. All of it falls out of one indexed COUNT(*).
Score Is a Flourish
Nothing is computed from it
Each puzzle earns a score with a visible breakdown — base, new-word bonus, no-hint bonus, speed bonus — counting up on the completion card. It survives as a per-puzzle reward and a personal record.
But no level, rank, or unlock reads it. That separation is deliberate: score is farmable and the collection is not, so tying anything structural to score would make grinding Easy puzzles the optimal play.
The speed bonus compares the player only to their own median for that theme and difficulty, and needs three prior solves before a median exists at all.
Four Streaks
Each forgiving by construction, and none of them able to erase what came before.
Daily
Consecutive calendar days with a finished puzzle. One missed day per week is forgiven.
Completion
Puzzles finished back to back, regardless of when.
No-hint
Consecutive solves without spending a hint.
In-form
Consecutive solves faster than the player's own median for that theme and difficulty.
Never push a loss, always be able to explain one
A broken streak gets no card, no message, nothing. But every completed run is recorded permanently with its length, its dates, and whyit ended — “no puzzle on 26 March”, “used a hint on Kitchen · Medium”. It sits collapsed under each streak in Stats, one tap away.
Silence about a loss is not the same as hiding it, and a counter that resets with no explanation is more unsettling than one that says what happened. This also makes longest-ever derivable rather than stored — a broken streak never erases its own record.
History Is a Dial, Not a List
Every finished puzzle is a notch on a rail that runs the width of the tablet. The rail moves under a fixed pointer rather than the selection moving along it, and whatever sits under the pointer is what the panel below describes.
Why it is worth doing at all
A vertical list buries the shapeof play, and the shape is the interesting part. Six notches in a row and then a fortnight's gap is a fact about someone's month that no number of “6 Aug · 1:04” rows will ever show.
Moving the rail rather than the selection is the difference between a carousel and a dial.
The trade, stated plainly
About eight notches are legible at once where a list showed twelve rows, so scanning many entries is worse.
Scanning when is far better — and that is what a history is for. It holds the most recent 100 solves, newest-first by default with a toggle, and reversing the order is a reverse rather than a re-sort because the query already returns them newest-first.
Five screens, five distinct treatments
The rail is deliberately unlike anything else in the app. Records are number tiles, streaks are meters, play statistics are plaques, themes are art tiles, and history is a rail. Five different jobs, five different shapes — rather than one table component pointed at five datasets.

The rail
Every finished puzzle is a notch carrying its theme art. The rail moves under a fixed pointer, and whatever sits under the pointer is what the panel below describes.

One solve
Difficulty, word count, whether hints were spent, time and score — plus any record set and any streak that ended on this puzzle.
The Stats Screen
Text rows are held to a 900dp reading measure — label-left, value-right stops being scannable much wider — but the 42-tile theme map opts out and takes the whole screen.

The collection
The spine of progression: unique words discovered against the 11,281 the corpus holds, with a ring per theme.

Records
Personal bests as number tiles. A record only counts as beaten when it already had a holder — setting the first one does not.

Streaks
The four streaks as meters. Every completed run is kept underneath with its length, its dates, and why it ended.

Play
Play statistics as plaques — a fourth distinct treatment, because a table pointed at four datasets would flatten four different jobs into one shape.

Trophy viewer
Each medal at its larger 384px size. Unearned art exists and is greyscaled, but the completion card is where a trophy is seen for the first time.
41 Trophies, Seven Families
Metal is derived, not chosen per trophy: the bottom of a family is bronze, the top is the highest metal that family reaches, and a family only climbs as far as it has rungs. So a three-rung family stops at gold and only the deep ones reach diamond. Milestones start at 50 words, so the first one lands alongside the first level-up, in the first week of play.
Words discovered
7 trophiesThe lifetime collection — unique words, so a word in three themes counts once. Denominator is 11,281.
| Trophy | Metal | Earned by | |
|---|---|---|---|
| 50 words discovered | Bronze | 50 unique words found | |
| 100 words discovered | Bronze | 100 unique words | |
| 250 words discovered | Silver | 250 unique words | |
| 500 words discovered | Gold | 500 unique words | |
| 1,000 words discovered | Gold | 1,000 unique words | |
| 2,500 words discovered | Platinum | 2,500 unique words | |
| 5,000 words discovered | Diamond | 5,000 unique words |
Level
8 trophiesLevel tracks the same collection at a coarser zoom. The ceiling is level 226 — every word in the app — which is why the ladder stops at 200 and the final trophy covers the top.
| Trophy | Metal | Earned by | |
|---|---|---|---|
| Level 5 | Bronze | reaching level 5 (200 words) | |
| Level 10 | Bronze | level 10 (450 words) | |
| Level 25 | Silver | level 25 (1,200 words) | |
| Level 50 | Silver | level 50 (2,450 words) | |
| Level 75 | Gold | level 75 (3,700 words) | |
| Level 100 | Platinum | level 100 (4,950 words) | |
| Level 150 | Platinum | level 150 (7,450 words) | |
| Level 200 | Diamond | level 200 (9,950 words) |
Daily streak
6 trophiesConsecutive calendar days with at least one puzzle finished. One missed day per week is forgiven, so these are gentler than they look.
| Trophy | Metal | Earned by | |
|---|---|---|---|
| Three days running | Bronze | 3 days in a row | |
| A full week | Bronze | 7 days | |
| A fortnight | Silver | 14 days | |
| A month of puzzles | Gold | 30 days | |
| Sixty days | Platinum | 60 days | |
| One hundred days | Diamond | 100 days |
Completion streak
4 trophiesPuzzles finished back to back.
| Trophy | Metal | Earned by | |
|---|---|---|---|
| Five finished in a row | Bronze | 5 consecutive | |
| Ten finished in a row | Silver | 10 consecutive | |
| Twenty-five in a row | Gold | 25 consecutive | |
| Fifty in a row | Platinum | 50 consecutive |
No-hint streak
3 trophiesSolved without spending a hint.
| Trophy | Metal | Earned by | |
|---|---|---|---|
| Five without a hint | Bronze | 5 consecutive hint-free solves | |
| Ten without a hint | Silver | 10 consecutive | |
| Twenty-five without a hint | Gold | 25 consecutive |
In-form streak
3 trophiesSolved faster than the player's own median for that theme and difficulty. Only ever compared against herself, and it needs three prior solves before a median exists at all.
| Trophy | Metal | Earned by | |
|---|---|---|---|
| Three quick solves | Bronze | 3 consecutive faster-than-median | |
| Five quick solves | Silver | 5 consecutive | |
| Ten quick solves | Gold | 10 consecutive |
One-offs
10 trophiesEarned once, never repeated. Not a ladder, so metal here is graded by what each actually costs.
| Trophy | Metal | Earned by | |
|---|---|---|---|
| First Hard puzzle | Bronze | finishing any Hard puzzle | |
| Hard, no hints | Bronze | a Hard puzzle with zero hints | |
| A personal best beaten | Bronze | beating a record that already had a holder — setting the first one does not count | |
| A theme at Fluent | Silver | any theme reaching 50% of its words | |
| A theme at Master | Silver | any theme reaching 75% | |
| A theme completed | Gold | every word in one theme | |
| Every theme played | Gold | at least one puzzle in all 42 themes | |
| Ten themes completed | Platinum | 10 themes fully discovered | |
| Every theme completed | Diamond | all 42 themes fully discovered | |
| Every word discovered | Diamond | all 11,281 words |
Adding a milestone without art is a compile error
All 41 ship at two sizes each — 192px for the shelf and completion card, 384px for the viewer — because one asset cannot serve both. Scaling a 384px bitmap into a 92dp box is a 4× reduction in a single filtering step, and that is what made the icons look chewed. Art is looked up 1:1 by a when that is exhaustive over the milestone enum, so a milestone without art fails the build rather than falling back silently.
The case shows earned trophies only
Showing a trophy greyed out in advance spends its reveal. Unearned art exists and is greyscaled, but the completion card is where each one gets seen for the first time — which is the moment it means something.








































