← Research & explainersBuilding useful tools · Building useful tools

Why I built a 10KB Sudoku app for Telegram

A developer story about a small Sudoku app: local puzzle state, consistent controls, browser security boundaries and verifying the logic behind the board.

This developer story was originally published by Narayan Mani on 8 January 2026. It described Sudoku Watchdog, a small Telegram Mini App built around local Sudoku play and a deliberately limited feature set. The “10KB” in its title described that original project, rather than the measured size of the present QuickCalculators website.

A small puzzle with a clear boundary

A Sudoku board needs 81 cells, a way to enter digits and a way to enforce row, column and box constraints. Those requirements can be understood without an account system or a remote database. Starting from that small task makes it easier to decide which additions are essential.

The original project set a client-side goal: keep the puzzle state and game logic in the browser rather than sending moves to a game server. That design reduces the server responsibilities of the puzzle itself. It does not mean that the platform or hosting service receives no ordinary page requests.

Choose puzzleEnter digitsCheck rows,columns, boxesCompleteThe puzzle state can stay on the player’s device

Keep the interface consistent

A compact application still needs a clear visual contract. Fixed clues must look different from editable cells. The selected cell needs an obvious focus state, and a mistake needs an explanation that does not depend only on color. These details help the player understand the board without a long instruction screen.

Consistency also reduces maintenance work. If spacing, button behavior and keyboard navigation follow the same rules throughout the application, adding a feature does not require teaching the player a second interaction style.

Separate browser code from secrets

A browser application exposes its delivered JavaScript to its users. Anything bundled into that code should be treated as public. A private server credential does not become secret because its source name contains an environment-variable prefix.

For a local Sudoku puzzle, avoiding a backend also avoids a need to provide browser code with privileged server credentials. If a future feature needs a server, its credentials belong on that server with a narrowly defined API rather than in a downloadable game bundle.

Verify the constraints rather than the appearance

A board that looks plausible may still have duplicate digits or more than one solution. Solving a puzzle once establishes that a completion exists; checking uniqueness requires looking for a second completion. These are different verification tasks.

A game’s controls need their own checks. Reset should preserve the original clues, editable cells should accept only permitted digits, and revealing a solution should be distinguished from a player solving the puzzle. A screenshot cannot establish any of those behaviors.

Keep changes proportional to the task

The original essay emphasized preserving the core architecture and verifying changes before trusting them. A focused correction should be tested against the existing board, controls and state transitions. Replacing the entire application to fix one label creates a larger surface to check.

A small application is not automatically a good application, but a clear boundary makes its behavior easier to inspect. The useful goal is enough functionality to support the task with predictable controls and understandable data handling.

Try the logic in the browser

The Sudoku Master puzzle provides a place to practice row, column and box reasoning on this website. The games and probability directory distinguishes constraint puzzles from random experiments.

This article retains the original development story’s themes without asserting that its historical Telegram installation, package size or privacy properties have been reverified today. For the present website’s processing, hosting and advertising practices, read the QuickCalculators privacy notice.

Find your calculator

Start typing to explore the library.