2026Nuxt.js

Wordle Arcade

  • Nuxt.js

About the project

Wordle Arcade reworks the familiar five-letter guessing game into an endless arcade run. You guess the hidden word in six tries, with each letter marked green, yellow, or grey; solving a word advances a level, banks points, and hands you a fresh word. The twist is time: every level runs on a countdown that starts at five minutes and decays exponentially toward a twenty-second floor, so the pressure keeps climbing. Each guess rewards time for the useful letters it reveals, plus ten seconds per new green and five per new yellow, but only the first time you discover each one, so you can't farm time by retyping. The run ends when you run out of guesses or time, and a top-ten score prompts you for a nickname. The interesting part is the architecture. The pure game rules, evaluating a guess, validating a word, and the timer decay formula, live in a shared module imported via the #shared alias and reused on both sides: the client runs them for instant feedback, and the server re-runs them as the source of truth. The leaderboard is a single Redis sorted set on Upstash, using ZADD to record scores and ZRANGE to read the top ten, trimming the rest, with no accounts and no database. It's built on Nuxt 4 and Vue 3 with script setup and vanilla scoped CSS in BEM, no UI framework.

Highlights

  • Endless arcade mode: levels, banked score, and an exponential-decay countdown timer
  • Time rewards for newly revealed letters, granted only on first discovery to prevent farming
  • Pure game rules in shared/ (via #shared): run on the client for instant feedback, re-validated on the server
  • Global leaderboard as a single Upstash Redis sorted set (ZADD / ZRANGE), no accounts, no database
  • Nuxt 4 and Vue 3 <script setup> with vanilla scoped CSS in BEM, zero UI frameworks