Every puzzle on this site is generated by our own code, checked for a unique solution, and graded by the actual logic it requires — no puzzle bank, no puzzles copied from anywhere else. Here’s the real pipeline, step by step.

1. Build a solved grid

We start by filling an empty 9x9 grid completely, using backtracking: try a digit in a cell, move on, and if a later cell runs out of valid digits, back up and try a different one. The order digits are tried in comes from a seeded random number generator, so the same seed always produces the same finished grid — which is also how daily puzzles work, by deriving a seed from the date itself.

2. Dig holes, checking uniqueness every time

From a complete grid, we remove clues in symmetric pairs (a cell and its 180-degree rotational partner), one pair at a time, in a shuffled order. After every single removal, a separate solver counts how many solutions the resulting grid has. If it’s not exactly one, that removal is undone and we move to the next candidate pair. This is the step that guarantees every puzzle has exactly one answer — see uniqueness basics for what that guarantee actually rules out.

3. Grade by technique, not by clue count

Once digging is done, the puzzle gets handed to our logical solver, which applies named techniques in order of difficulty and records the hardest one it ever needed. That grade — not the number of clues left — is what determines whether a puzzle is labeled Easy, Medium, Hard, Expert, or Evil. The full breakdown is on how we rate difficulty.

4. Keep digging until the grade matches the target

A single pass of digging doesn’t aim for a specific difficulty — it just removes as much as it safely can. To land on a specific target band, we repeat the whole process (new seed, new grid, new digging order) until a puzzle comes out graded at the level we actually wanted. Some bands come up often; others, like Expert, are comparatively rare to hit exactly, so that search can take meaningfully longer for some levels than others.

Every puzzle can be shared as a link, because the givens and the difficulty are packed into a short, URL-safe code — not a reference to a puzzle stored in a database somewhere, just the grid itself, compressed. Opening that link rebuilds the exact same puzzle from the code, nothing else.

What this means for you

No puzzle on this site is hand-placed, scraped, or reused from a bank shared with other sites. The daily puzzle is deterministic from the date; a shared puzzle link is deterministic from its code; and a puzzle’s difficulty label is a direct, checkable claim about what technique it needs, not a guess. If you want to see the reasoning a puzzle actually requires, the solver will walk any grid through it step by step.