
The React 19 port of the Sudoku app (vercel-sudoku-r3t), showing a puzzle in progress. The 9×9 grid uses green cells for given numbers and a pink highlight for the active selection. The digit input row shows 2 5 8 as the available choices for the selected cell. "New Puzzle" and "Check?" buttons sit below the grid, with "Welcome, are you ready to play?..." as the status message. Tailwind 4.2.2 noted bottom-right.
Puzzles are generated by a serverless Rust API (sudoku-rust-api on Vercel), called fresh on each "New Puzzle" action. State is managed with Zustand+persist in this implementation — one of the few apps in the suite where the store choice meaningfully affects the user experience, since puzzle state survives a page refresh.
This is one of 10 framework implementations of the same Sudoku design, including two Custom Element variants (Preact CE, Svelte CE) and a Juris native version (sudoku-juris) that serves as the proof-of-concept for the MCP action–state experiment.