← Back to the portfolio
How it works

WordDiamond

There's no puzzle database. Every phone builds the same puzzle from scratch, using today's date as the recipe.

WordDiamond runs entirely in your browser. There's no server and no list of stored puzzles. The generator is seeded with the date, so everyone in the world gets the identical board on the same day.

Play WordDiamond

The big picture

GitHub Pages
Game filesThe page, the engine and the word list
Your phone
Today's dateBecomes the random seed
GeneratorFinds four words that lock together
GameGuess letters, count demerits
Your friends
Shared resultScore and coloured squares, no spoilers

After the page loads, nothing talks to a server again.

Step by step

  1. Start from a word list Game files

    The 2,315 Wordle answer words, ordered from most to least common, with names and nationalities removed.

  2. Turn today's date into a seed Your phone

    The day number (counted from 1 January 2026) seeds a random number generator. The same seed always gives the same "random" choices, so every phone makes the same puzzle.

  3. Build the diamond Your phone

    The generator picks a top-left word, then a top-right word that shares its corner letter, then a bottom-left one. Finally it searches for a bottom-right word that fits both remaining corners.

  4. Reject bad boards Your phone

    A board is thrown out if it uses an obscure word or has too few or too many different letters (the target is 8 to 14). The generator keeps trying until it finds a good one.

  5. Play Your phone

    Guess one letter at a time. A right letter fills every tile it belongs in, and a wrong one costs a demerit. Difficulty changes the rules, not the words: Hard hides the centre letter, and Easy only half-penalises near misses.

  6. Share Your phone

    Your result becomes a line of coloured squares with the puzzle number and score, sent through the phone's share sheet or copied to the clipboard. Friends see how you did without seeing the words.

The pieces

Seeded random generator

Random-looking choices that are identical for everyone given the same seed.

A daily puzzle for everyone with no server or puzzle archive.

Word-fitting search

Picks words that share corner letters, weighted towards common words, and retries until the board is fair.

Endless puzzles without writing any by hand.

Plain JavaScript

An engine, a word list and one page. No framework.

Tiny download, instant start.

Web app manifest

Lets it install to the home screen and open full screen like an app.

Feels like an app without an app store.

Web Share

Uses the phone's native share sheet, or falls back to copying the result.

Sharing is how daily puzzles spread.

Trade-offs I chose