2026Nuxt.js

Wordpace

  • Nuxt.js

About the project

Wordpace reworks the familiar five-letter guessing game into an endless run against the clock. You guess the hidden word in six tries; solving one advances a level, banks points, and hands you a fresh word. Every level runs on a countdown that starts at five minutes and hands out 8% less than the one before, and time left over carries into the next level, so solving fast is worth more than the points alone. Each guess refunds time for the useful letters it reveals, but only the first time you discover each one, and when you get stuck you can spend points on hints that reveal part of the word or burn one of three per-run skips at an escalating price. The run ends when you run out of guesses or time, and a top-ten score for the current month earns a spot on the leaderboard. What makes it more than a Wordle clone is that it teaches while you play. Every answer is graded by the CEFR level at which a learner is expected to know it, and the answers come from a pool that widens as you climb: A1 to A2 at the start, then B1, B2, and C1 to C2 unlocking at higher levels, so the level you reach is a rough read on your own English. After each word it's explained with part of speech, spoken IPA pronunciation, its CEFR level, a definition written in deliberately simpler words, and an example sentence. And because a word met once is a word lost, one answer in four is a spaced review drawn from the last twenty words you've seen, weighted so the ones you got wrong return more often than the ones you got right. Your best level, best score, and the number of distinct words you've met are kept in the browser and shown on the home page, and a finished run can be shared as four CEFR-band squares. A second board, the Vault, opens at any time: a ladder of four hidden words, one per CEFR band you've unlocked, cracked using words you've already solved in the run rather than typed cold, with the run clock still ticking. Under the hood, the pure game rules, evaluating a guess, validating a word, and the timer formula, live in a shared module reused on the client for instant feedback and re-run on the server as the source of truth. The 440 KB dictionary and the CEFR grades never reach the browser, served one entry at a time from a server route; the leaderboard is a per-month Upstash Redis sorted set that resets on its own; and every finished run logs a single line so the game can be tuned on real data instead of one player's impressions. Built on Nuxt 4 and Vue 3 with script setup and vanilla scoped CSS in BEM, no UI framework.

Highlights

  • Endless run against an exponential-decay countdown, with leftover time carrying into the next level and time refunded only on a letter's first discovery
  • Answers graded by CEFR level from a pool that widens as you climb (A1-A2, then B1, B2, C1-C2), so the level you reach reflects your own English
  • Spaced review: one answer in four returns from your last twenty words, weighted so the ones you got wrong come back more often than the ones you got right
  • Every word explained with part of speech, spoken IPA pronunciation, CEFR level, and a definition written in deliberately simpler words
  • The Vault: a second board of four hidden words, one per unlocked CEFR band, cracked with words you already solved in the run
  • Monthly global leaderboard on Upstash Redis, personal records in localStorage, and a run shareable as four CEFR-band squares
  • Pure game rules in shared/ run on the client and re-validated on the server; the 440 KB dictionary and CEFR grades served one entry at a time, never shipped to the browser