sudoku · on Cloudflare

A fresh puzzle, whenever you want one.

Classic 9×9 sudoku in the browser. Press New Puzzle, fill in the blanks, and check your work as you go. Every puzzle is generated on demand by a small Rust program running at the edge. No accounts, no ads, nothing to install.

Single player, and no key needed. Your puzzle and every entry that passes a check are saved in this browser.

How a puzzle goes

One request for the puzzle, then everything happens in your browser. The board knows the answer, so checking your work is instant.

A new puzzle: the SUDOKU title, a 9×9 board with the clues shaded grey, and the New Puzzle and Check ? buttons
STEP 1

Start a puzzle

Press New Puzzle and a fresh board arrives in a blink, usually with 25 to 30 clues. Every one has exactly one solution.

A puzzle in progress: one empty cell selected in red, its row, column and box highlighted in green, and buttons for the two digits it could still be, 4 and 8
STEP 2

Pick a cell, pick a digit

Tap an empty cell and its row, column and box light up. The buttons underneath offer only the digits that could still go there; x clears a cell.

A finished board with every cell filled and the message: You solved the puzzle!!
STEP 3

Check, fix, finish

Press Check ? whenever you like. Wrong guesses are cleared and right ones stay. Get every cell right and the board tells you so.

Never the same twice

Each puzzle is generated when you ask for it: symmetric, minimal, and with a single solution, so logic always gets you there.

Only legal moves

The digit buttons leave out anything already in the cell's row, column or box, so you spend your time thinking, not scanning.

Check on your terms

Check as often or as rarely as you like. It quietly removes mistakes and keeps everything you got right.

Picks up where you left off

The puzzle and your checked entries live in this browser, so a reload or a closed tab doesn't cost you the board.

same api · new home

Rust, at the edge

The puzzle API started life as an Actix server on Heroku and went quiet when Heroku's free tier ended. Now the same Rust code is compiled to about 300 KB of WebAssembly and runs on Cloudflare Workers, next to the page that calls it. A puzzle takes well under a millisecond to generate, the Worker keeps no state at all, and anyone can call /api/puzzle directly.

BUILT WITH
Rust WebAssembly workers-rs Cloudflare Workers Stencil web component Tailwind No server state