Sudokus
Web sudoku game with user accounts, saved games, statistics and an in-house engine that generates and grades every puzzle.
Goal
Offer a complete web sudoku where each player saves their games and tracks their progress.
Problem it solves
Many online sudokus don't save progress, have poorly calibrated difficulty or allow cheating. Here every game is saved to the account, difficulty is calculated by solving the puzzle the way a person would, and every move is validated on the server.
Architecture diagram
- BrowserAlpine.js · board, notes and keypad
- Djangoviews + JSON API · engine: solve, grade and generate
- PostgreSQLSupabase · dedicated schema and role
Features
- Board that highlights the row, column, box and matching numbers.
- On-screen keypad showing the remaining numbers, plus physical keyboard support (numbers, arrows, N for notes, Delete, Ctrl+Z).
- Pencil notes, undo, erase, hints, a timer with pause and 3 lives.
- Every move is validated on the server; the solution never reaches the browser.
- Games saved per user, with continue and retry.
- Victory screen (time, mistakes, hints and best time) and defeat screen.
- List by status and difficulty with thumbnails; new random game among the unplayed ones.
- Profile with stats: solved, day streak, win rate, best time and average by difficulty.
- Sign-up, email login and password recovery.
- In-house engine that solves (unique solution), grades difficulty and generates sudokus.
Technical challenges
- 01Grading difficulty objectivelyInstead of counting clues, a solver applies human techniques (singles, locked candidates, pairs) and sets the level by the hardest technique it needs.
- 02100% original contentEvery sudoku is generated by the engine with a verified unique solution; puzzles from an external dataset were dropped because their license couldn't be guaranteed.
- 03No cheating, no conflictsThe solution lives only on the server, each move locks the game in the database and there can't be two ongoing games of the same sudoku.
- 04Secure credentialsThe database password was generated locally and only its SCRAM hash was sent to Supabase.
Current status
Released in September 2026 with 424 sudokus (237 easy, 127 medium and 60 hard), all generated by its own engine, and 27 automated tests.
Future improvements
- Add more advanced techniques to the engine to offer an expert level.
- Add more games to the platform.
Related articles
1 min readProjects
How my sudoku engine decides whether a board is easy, medium or hard
Counting empty cells isn't enough to tell how hard a sudoku is. This is how I solved it in my Sudokus project, by solving it the way a person would.
Read article