Between puzzles

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

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

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 collection

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

Records

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

Streaks

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

Play

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

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.

Bronze10
Silver9
Gold10
Platinum6
Diamond6

Words discovered

7 trophies

The lifetime collection — unique words, so a word in three themes counts once. Denominator is 11,281.

TrophyMetalEarned by
50 words discoveredBronze50 unique words found
100 words discoveredBronze100 unique words
250 words discoveredSilver250 unique words
500 words discoveredGold500 unique words
1,000 words discoveredGold1,000 unique words
2,500 words discoveredPlatinum2,500 unique words
5,000 words discoveredDiamond5,000 unique words

Level

8 trophies

Level 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.

TrophyMetalEarned by
Level 5Bronzereaching level 5 (200 words)
Level 10Bronzelevel 10 (450 words)
Level 25Silverlevel 25 (1,200 words)
Level 50Silverlevel 50 (2,450 words)
Level 75Goldlevel 75 (3,700 words)
Level 100Platinumlevel 100 (4,950 words)
Level 150Platinumlevel 150 (7,450 words)
Level 200Diamondlevel 200 (9,950 words)

Daily streak

6 trophies

Consecutive calendar days with at least one puzzle finished. One missed day per week is forgiven, so these are gentler than they look.

TrophyMetalEarned by
Three days runningBronze3 days in a row
A full weekBronze7 days
A fortnightSilver14 days
A month of puzzlesGold30 days
Sixty daysPlatinum60 days
One hundred daysDiamond100 days

Completion streak

4 trophies

Puzzles finished back to back.

TrophyMetalEarned by
Five finished in a rowBronze5 consecutive
Ten finished in a rowSilver10 consecutive
Twenty-five in a rowGold25 consecutive
Fifty in a rowPlatinum50 consecutive

No-hint streak

3 trophies

Solved without spending a hint.

TrophyMetalEarned by
Five without a hintBronze5 consecutive hint-free solves
Ten without a hintSilver10 consecutive
Twenty-five without a hintGold25 consecutive

In-form streak

3 trophies

Solved 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.

TrophyMetalEarned by
Three quick solvesBronze3 consecutive faster-than-median
Five quick solvesSilver5 consecutive
Ten quick solvesGold10 consecutive

One-offs

10 trophies

Earned once, never repeated. Not a ladder, so metal here is graded by what each actually costs.

TrophyMetalEarned by
First Hard puzzleBronzefinishing any Hard puzzle
Hard, no hintsBronzea Hard puzzle with zero hints
A personal best beatenBronzebeating a record that already had a holder — setting the first one does not count
A theme at FluentSilverany theme reaching 50% of its words
A theme at MasterSilverany theme reaching 75%
A theme completedGoldevery word in one theme
Every theme playedGoldat least one puzzle in all 42 themes
Ten themes completedPlatinum10 themes fully discovered
Every theme completedDiamondall 42 themes fully discovered
Every word discoveredDiamondall 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.