Dit begon met een extreem moderne product requirement: ik wilde één potje Sudoku spelen zonder eerst door een advertentiecasino te worden geleid.

De App Store-opties die ik probeerde waren technisch gezien games, maar voelden als puzzelvormige billboards. Full-screen onderbrekingen, reward loops, timers die aandacht eisen, dark patterns op kleine schoentjes. Ik had geen growth funnel nodig. Ik had negen vakken en rust nodig.

Sudoku game screen with a clean puzzle grid, progress stats and number controls.
Sudoku: de versie die ik wilde openen zonder eerst langs een advertentieparade te moeten.

Dus bouwde ik een kleine Sudoku-app die op mijn beginscherm kan staan, net als een gewone app, maar zonder appstore-gedoe. Stil, snel open, en bewust saai op de plekken waar saai juist een feature is. Het doel was niet om Sudoku opnieuw als platform uit te vinden. Het doel was alles verwijderen wat tussen mij en de puzzel stond.

Hij is ook volledig gevibe-code, in de eerlijke betekenis daarvan: bouwen terwijl de vorm nog onderweg is, tooling laten meehelpen, en daarna het resultaat testen in plaats van doen alsof de eerste versie met unit tests van een berg is gedragen.

Dat laatste is belangrijk. Gevibe-code betekent niet “ship maar wat autocomplete uitniest”. Het puzzelgedrag moet nog steeds kloppen: gegenereerde borden moeten geldig zijn, zetten mogen state niet slopen, notes moeten zich gedragen, fouten moeten herstelbaar zijn, en de app moet na installatie werken als PWA in plaats van als website met een nepsnor.

Ik hou van dit soort projecten omdat de scope klein is en de irritatie zuiver. Geen marktanalyse. Geen roadmaptheater. Gewoon een persoonlijk tooltje dat bestaat omdat de beschikbare versies irritant genoeg waren om een editor te openen.

Het hoort ook op deze site omdat zulke kleine tools veel zeggen over hoe ik werk. Als een probleem blijft porren, maak ik liever een rustige versie dan dat ik blijf onderhandelen met iemands pop-upstrategie.