Skip to content
Mario Flores
← All projectsIn production · 2026

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

  1. BrowserAlpine.js · board, notes and keypad
  2. Djangoviews + JSON API · engine: solve, grade and generate
  3. PostgreSQLSupabase · dedicated schema and role
Django is deployed on Vercel (London). Each sudoku's solution never leaves the server.

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

  1. 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.
  2. 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.
  3. 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.
  4. 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

↑ ↓ to move · Enter to choose · Esc to close