Puzzles

Daily word search

A new word search for each UTC date, at three difficulty levels you switch between without leaving the page. Generated in your browser, so you can play here and then print the same grid on US Letter or A4 paper when you want it on a table instead of a screen.

Today’s grid is generated in the browser from the UTC date. If this message is still here after the page loads, JavaScript is disabled and the puzzle cannot be generated.

How to play

Find every word from the word list inside the letter grid. Words run in a straight line and never bend. At easy, words read across and down only; standard adds the two downward diagonals; hard uses all eight directions, so words can also read right to left and upward.

Mouse: drag from the first letter to the last. Touch: drag across the word, or tap the first letter and then tap the last. Keyboard: move to a letter with the arrow keys, press Enter to set the start, move to the last letter, then press Enter to submit. Escape clears a selection you have started.

Letters are shared, so two words can cross at the same letter. Every found word is marked three ways: a continuous line through its letters in the grid, a crossed-out word with a checkmark in the word list, and a spoken status message such as “3 of 8 words complete” at the standard level. None of that relies on colour.

Three levels of the same daily puzzle

Choose a level in the Difficulty control above the grid. The puzzle is re-resolved in place, on the same URL, from the same UTC date and theme. Two visitors on the same UTC date who pick the same level get the same grid, and two different levels on the same date give different grids. Progress is kept separately for each level of the day, so switching levels never overwrites what you have already found.

  • Easy — a 10 × 10 grid with 6 words, running across and down only, and no word longer than 8 letters.
  • Standard — the level a first visit lands on: a 12 × 12 grid with 8 words, across, down, and both downward diagonals, and no word longer than 9 letters.
  • Hard — a 14 × 14 grid with 10 words, all eight directions, and no word longer than 11 letters.

How the daily puzzle is generated

Every visitor on the same UTC date and the same difficulty receives the same puzzle. The grid is derived from four inputs: the UTC date, the rotating theme for that date, the selected difficulty, and generator version 2. Those inputs are serialized in a fixed order and hashed into a seed for a local seeded generator, so the result is identical on every device, every run, and every build — without a database, a scheduled job, a server calculation, or a daily deployment.

The difficulty chooses the preset the generator uses, which decides the grid size, the number of words, the directions a word may run in, and the longest word accepted, so different levels of the same daily theme are different puzzles.

Words are normalized to A–Z, longer words are placed first, and placements may share a letter when the letters agree. Placement attempts are bounded, so generation always terminates; if a word genuinely cannot be placed, the page shows an explicit error instead of looping.

The puzzle rolls over at 00:00 UTC, which moves a tab opened yesterday onto the new puzzle without a reload while keeping the level you selected. Yesterday’s puzzle is not archived.

Your progress and privacy

Found words are kept in your own browser under one local storage key per puzzle and difficulty, for example yojoli:word-search:progress:v1:2026-09-15:theme-id:standard:g2, along with local timestamps used to report a coarse solving time. Nothing is sent to a server, no account is required, and no Yojoli identifier is created. Progress from an earlier date is deleted automatically the next time you open the puzzle, and Reset progress clears the selected level’s key. If a saved record is stale or unreadable it is discarded and the puzzle starts fresh rather than showing incorrect state.

Product analytics are consent-gated. Five events are defined — puzzle start, completion, print, reset, and a generation or storage failure — carrying only the product id, theme id, difficulty, generator version, and a coarse duration bucket such as “1 to 3 minutes”. The grid, the word list, your selections, and your saved progress are never transmitted.

Limitations

The word lists are reviewed English words written with A–Z letters only; there are no user-created lists, archives, leaderboards, or accounts. Progress lives in one browser on one device and is not synchronized. The puzzle changes at 00:00 UTC, which is the previous evening in some time zones.