Menu
Projects

Game

wrdef

Same 5-letter, 6-guess mechanic: clues are dictionary definitions; bonus round fills blanks in the definition.

Live, playable in the browser. No install.

In simple terms

A five-letter word game where the clue is the dictionary definition rather than the pattern of letters you have already tried.

That one change moves the whole game. In the original you are reasoning about spelling; here you are reasoning about meaning, which means a word you have never typed can still be deduced. Definitions are ranked by sense, so a word with several meanings gives you the one that is actually useful, and bonus blanks reward getting there on less information.

You earn your words. Solve one and it joins a local dictionary that belongs to you, so the game accumulates across sessions instead of resetting every day.

The impact. A small, finished, playable thing. Shipping something complete is a different discipline from building a prototype that only has to survive a demo, and most portfolios only contain the second kind.

Why I built it

I play Wordle almost every day, and sometimes I get annoyed when I beat the round but I don't know the word.

So I built wrdef: same 5-letter guess-in-6 mechanic, but your clue is the dictionary definition. Solve it and you fill in blanks in that definition for bonus points, so you leave actually knowing what you just guessed.

The interesting part: tuning the data

Sense ranking per word

Most words have multiple definitions: "print" is a verb, a noun, and a photography term. I pull senses from the Wiktionary-backed dictionaryapi and tag each with a primaryRank (0 = most obvious, N = most obscure). Difficulty is just a sense-rank selector: easy shows you the primary meaning, hard shows the deepest one available. Same pool, different game.

POS-aware filtering

Interjections, prepositions, pronouns, prefixes: their definitions are circular ("used to express surprise") and make terrible clues. I whitelist verb/noun/adjective/adverb as first-class senses and only fall back to the rest when a word has nothing else.

Bucketing by frequency × depth

Every word has a corpus-occurrence score. Rare words with multiple senses get pushed to hard; common words with a single obvious sense stay in easy. The difficulty filter also requires a word to actually have a sense at that rank; otherwise the toggle would just be theming.

Blank selection for the bonus round

The definition gets tokenized; stopwords, short words, and anything sharing a 4-character prefix with the answer get dropped (no "running" blanks when the answer is "run"). Remaining candidates ranked by length: longer words carry more information and make the bonus feel earned rather than random.

A dictionary you earn

Every solve is saved to localStorage with its definition, difficulty, solve time, score, and whether you cleared the bonus. A separate /urdefs page builds a personal stats view off that log: win rate, current/best streak, fastest solve, per-difficulty breakdown, last-12 strip. No sign-in, no server. The idea is that the definitions shouldn't be disposable; you're slowly building a dictionary of words you actually earned.