Skip to content
All projects
TypeScript·A solver that explains itself

Sudoku Pro

A Sudoku game that teaches you to solve Sudoku. A constraint-propagation engine detects which human technique applies to the current board and walks through the reasoning, step by step.

6
unit-tested modules: engine, grader, hints, scoring
8+
solving techniques, from naked single upward
PWA
installable, works offline

Stack

Nuxt 4Vue 3TypeScriptVitestPlaywrightPWA
Sudoku Pro

The interesting problem

Writing a Sudoku solver is a known exercise: backtracking search finishes in milliseconds. But a solver that brute-forces the answer cannot teach anyone anything, because "the answer is 7 because I tried every branch" is not a reason.

So the engine here solves the way a person does. It models candidates per cell and applies human techniques in ascending order of difficulty - naked single, hidden single, then pointing pairs, box/line reduction, and further - returning the simplest technique that makes progress on the current board, along with the cells that justify it.

That constraint, explainability over speed, is what makes the design non-trivial. The hint system and the difficulty grader fall out of it: a puzzle's rating is the hardest technique required to solve it without guessing.

Where the tests are

The logic is separated from the UI precisely so it can be tested as logic. Six unit-tested modules cover the core:

ModuleWhat it proves
sudokuCore / sudokuEngineConstraint propagation and validity
sudokuGraderDifficulty rating matches required technique
nextHintThe right technique is chosen, with correct justification
scoreScoring and streak rules
dailyPuzzleDeterministic daily generation

Four Playwright specs cover the parts unit tests cannot: game flow, pausing, preferences, and resuming an interrupted session.

The rest

Installable PWA that works offline, keyboard-driven controls, pencil-mark notes with auto-fill, undo, and a bilingual interface. Deployed to GitHub Pages on every push.

Let’s build something that lasts

Hiring a senior engineer or architect for a remote team? I work across EU and US time zones - tell me what you're building.

Newsletter

I write about software architecture, PHP, Vue, TypeScript, and developer experience. No spam, unsubscribe anytime.

Copyright © 2026. All rights reserved.