SEA is scorching. Not about spelling โ about meaning.
The hook
Guess-the-word games usually give you nothing but right or wrong. Hot/Cold gives you a temperature: every guess comes back with a warmth percentage based on how close its meaning is to the secret word, not its letters. Guess DESERT and freeze at 9%; guess SEA and the app is practically shouting the answer at you. It's the "getting warmer" game from childhood, digitized and precise, tuned so a normal human โ not a linguist โ can actually close the gap and finish in a sitting.
A sample round
1 ยท A secret word, zero clues
2 ยท Climbing โ mercy hint looms
3 ยท OCEAN, 100%, seven guesses
How a round plays
- A secret word is locked in for the day; type any guess to see how close you are in meaning.
- Every guess returns a warmth reading โ a percentage of semantic closeness, not spelling.
- Unlimited guesses, but each one is logged in your guess trail.
- Stuck past 10 guesses? Mercy hints start unlocking โ first letter, then length, then a synonym.
- Share your warmth trail as a strip of ice-to-fire emoji plus your final guess count.
Why it's sticky
Semantle proved this genre is compelling; it also proved most people bounce off it because "closeness" can feel arbitrary and rounds can drag for an hour. Hot/Cold is deliberately tuned to be finishable: the warmth curve is generous near the target so a good guess visibly rewards you, and the mercy-hint ladder guarantees no one is stuck at 15% forever. The result is a satisfying temperature-climb loop โ each session ends with the same tiny thrill of watching the percentage spike toward 100.
Modes
- Daily โ one shared secret word, streaks and share grid in localStorage.
- Practice โ unlimited random secret words, no streak pressure.
- Team thermometer (party) โ pass the phone; teams alternate guesses, building on each other's warmth clues.
Build notes
Size: M. Meaning-closeness can't be computed live under the static-only, no-backend constraint โ there's no runtime AI call to lean on. The fix is to precompute: at authoring time, run an offline embedding pass once per daily secret word against a list of a few thousand common words, rank them by semantic distance, and ship the ranked list as that day's static puzzle data. At runtime, a guess is just a lookup โ found in the list, return its precomputed warmth band; not found, return the lowest cold response. The shared shell still provides the daily seed, streak store, share grid, and mercy-hint plumbing; the game-specific work is the offline scoring pipeline and a lookup module that stays plain state-in/state-out, so the same puzzle format could later back an async duel without touching the generation step.