-
-
Only the summit is clued. You know the letter count and a riddle; every rung in between is yours to find.
-
BITES is a real word, but it can't reach the summit. The hint says so: dead end, back up.
-
Backing up is free and unlimited. Retreat, rearrange, try TRIBE instead.
-
Add one letter, rearrange, make a real word. BITTER: sharp-tasting, like strong coffee.
-
Two stars: finished, with one dead end along the way. A clean ascent earns three.
-
One climb a day.
-
GIF
Add a letter, rearrange. That's the whole move.
Inspiration
I still play Wordle every morning, mostly because the group chat expects it. But the fun wore off a long time ago. The format is solved, and the hundreds of clones that came after all do the same thing.
The games that actually caught on after Wordle (Connections, Strands) added mystery rather than new rules. So the idea was: give the player the destination as a riddle and let them work out the road.
What it does
Wordscend is a daily word climb. You start from a two-letter seed and grow it one letter at a time. Add a letter, rearrange, make a real word. You keep going until you reach the Secret Summit, which you only know by a cryptic clue and a letter count.
You're growing toward: a garrulous songbird (8 letters)
IN - SIN - SING - STING - STRING - STARING - STARLING
Any real word is a valid step, so the middle of the climb is up to you. Some routes dead-end. Backing up is free and unlimited, and you're never punished for it. Retreating from a dead end is part of the game.
- One shared hand-crafted puzzle a day, about three minutes. No unlimited mode.
- Hints are honest. A reachability search tells you either "dead end, back up" or the first letter of the next word that still leads to the summit.
- The share string tells the story of your climb: 🟩 for a rung that stayed on route, 🟥 for one you backed out of, three stars if you did it clean. No spoilers.
Wordscend #214 ⭐⭐⭐ 🌱🟩🟩🟥🟩🟩⛰️ 2:41 💡1
There are also streaks, stats, a tutorial on first play, a daily reminder, and two coffee-house themes (Latte and Dark Roast).
How I built it
The puzzles come from a script that walks the 172,000-word dictionary graph backwards from candidate summit words. Each puzzle is graded by how many distinct routes reach the top. BITTER has 24, STARLING has around 26,000, so one is tight and one is open. The script also throws out cheap finishes: no plural summits, and the lazy "just add an S" strategy has to dead-end before the top. The clues are written by hand. I didn't want a generator writing riddles.
The app is React Native with Expo SDK 57. Reanimated and Skia handle the celebration animation, the icons are hand-drawn SVG, and the type is Fraunces plus Atkinson Hyperlegible. The game logic is pure TypeScript with unit tests, and it never reads the clock. Callers pass in the date, which is how I test the midnight rollover without waiting for midnight.
The server is NestJS, Prisma and Postgres. It serves the dated puzzle bank and gets deployed by GitHub Actions to a VPS behind Caddy. If it goes down the app falls back to puzzles bundled in the binary, so the daily never shows a spinner.
Purchases go through RevenueCat. The daily puzzle is free forever and there are no ads before or during play. Wordscend+ is a one-time $4.99 that removes the ad gate on hints. There is also a tip jar where you can buy me an Espresso, a Latte or a Pour-over. Tips don't unlock anything.
Builds go out through EAS Build, and JS-only fixes ship over the air with EAS Update.
Challenges I ran into
The first prototype was upside down. It started with a long word and removed letters, which meant the hardest step came first and the last couple of steps were trivial. Flipping it to grow upward fixed the difficulty curve, and now the ladder is drawn with the summit at the top and the seed at the bottom.
Version one also had a single scripted path. A tester typed HARTS, which is a real word, and got rejected. That was a rage moment, so I threw the scripted path out and accepted every dictionary word. That meant dead ends became real instead of planted, and I had to build a proper reachability search so hints wouldn't lie.
Scoring took three attempts. Golf-style par, lives, and a wrong-guess counter were all built and all cut. My rule was that if a system needs a paragraph to explain, it should be replaced by one that explains itself. The climb trail was the one that did.
Warm colours fail accessibility checks constantly. The coffee palette shipped two contrast failures before I wrote a test that computes the ratio of every colour pair and fails the build if one slips.
And I renamed the whole thing late, because the original name turned out to collide with two live word games. Stores, domain, trademark search, every asset.
What I learned
Wordle was a remix of Mastermind. The hits in this genre come from a new framing of an old mechanic, and people stick around for the human parts: the voice of the clue, the traps laid on purpose. I'd like "never trust the easy S" to become something players say to each other.
What's next
A longer puzzle bank with a Monday-easy to weekend-hard ramp, a puzzle archive for Wordscend+, and paying attention to how people describe the game when they share it.
I switched it to first person singular. If it's a team submission (Manage team has a check), swap "I" back to "we" and "me" to "us" in the tip-jar line.
Log in or sign up for Devpost to join the conversation.