I Built the Sudoku App I Actually Wanted to Play
7 mins read

I Built the Sudoku App I Actually Wanted to Play

I kept downloading Sudoku apps and deleting them. Ads between puzzles. A “difficulty” setting that just hides more numbers. And worst of all — no idea I’d made a mistake until the whole board was wrong and there was nothing to do but start over.
So I built my own. It’s called Zendoku Grove, and it’s out today for iPhone, iPad and Mac.

Zendoku Grove running on Mac, showing a Sudoku board with colored row, column and matching-number highlights
Zendoku Grove on Mac

📲 Download Zendoku Grove on the App Store →


🔹 Tell Me Right Away When I’m Wrong

This was the first decision, and everything else followed from it. I hate games that let me think I’m doing well when I’m not. So in Zendoku Grove, a wrong number is flagged red the moment you place it — no waiting until the board falls apart to find out.

A wrong entry outlined in red the moment it is placed, during the Zendoku Grove onboarding walkthrough
Wrong entries are flagged the moment you make them — never a surprise at the end.

That sounds harsh. It’s the opposite. Finding out instantly costs you one move; finding out at the end costs you the whole puzzle. There’s no setting to turn it off, because a version of this game that quietly lets you go wrong isn’t the game I wanted.

The same thinking shaped Undo. Undo takes back the number, but not the mistake. It was tempting to let Undo wipe the slate clean, but then every “flawless” solve would be a lie, and the reward for one wouldn’t mean anything.

🔹 Difficulty You Can Actually Trust

Most apps decide difficulty by how many squares they leave empty. That’s not how hard a puzzle actually feels. A board with lots of blanks can be easy if every step is obvious, and a board with few blanks can be brutal.

Choosing a puzzle in Zendoku Grove, with the Challenge level set to Engaging (Medium, pairs and pointing)
Difficulty is named after the technique the puzzle actually needs — here, “pairs & pointing.”

So after generating a puzzle, Zendoku Grove solves it with a logic-only solver and records which techniques it actually needed, from simple singles up to X-Wing. That rating is the difficulty. Expert means the puzzle genuinely requires expert technique. Every puzzle also has exactly one solution, so you never have to guess.

🔹 Five board sizes, from 4×4 up to 16×16 — all real puzzles, not simplified toys.

🔹 Designing for a Brain That Wanders

I have a short attention span for anything that doesn’t reward me quickly, so I built the progression around that on purpose:

  • The XP bar always shows what’s left to the next level, and early levels come fast.
  • 🏅 100 badges, weighted toward small early wins rather than a few distant trophies. The home screen always shows one concrete goal that’s close.
  • 🔥 A first-solve-of-the-day bonus gives an easy reason to come back, and the daily streak has a built-in freeze — missing one day doesn’t wipe it out. No guilt-tripping.
Zendoku Grove progress screen showing Level 2, XP earned, a one-day streak, and a note from Mochi the panda
Level, XP, streak and a note from Mochi — small, frequent rewards on purpose.

Three play styles decide what mistakes cost you:

  • 🌿 Gentle — unlimited mistakes, base XP. For when you want no stakes at all.
  • ⚖️ Balanced — ends the puzzle on the 5th mistake, pays a +50% bonus that shrinks with each slip.
  • 🔥 Challenge — ends it on the 3rd mistake, but pays +150% for a clean solve.

Getting those numbers right took a few passes. My first version had Challenge paying less than Balanced once you’d made a mistake, which would have made picking it irrational. Risk has to actually pay.

🔹 The Colors Took the Longest

I dislike blue-on-blue interfaces, and low-contrast “minimal” design is genuinely hard to read. So instead of eyeballing the palette, I measured it — every color pair in every theme, checked against real contrast ratios.

That turned up problems I’d never have caught by looking. The grid lines and the row-and-column highlight were both far under the readable threshold — essentially invisible. Different kinds of highlight (the selected cell, its row and column, matching numbers) also got genuinely different hues instead of three shades of the same color, because your eye shouldn’t have to work out which faint tint means what. Zendoku Grove ships with five themes in total.

Zendoku Grove's lavender theme on Mac
Zendoku Grove's green theme on iPad

Two of the five themes — a cool lavender on Mac, a soft green on iPad.

🔹 Two Hard-Won Technical Lessons

A layout loop that only happened on Mac. The Mac version kept crashing with an AppKit error about constraint update passes. The cause: the game screen and the puzzle-picker screen each registered the other as a destination they could push. On Mac, every navigation change redrew both, which re-registered the destinations, which triggered another change. Rebuilding navigation around a single path fixed it — and the app got simpler.

Syncing progress without a server. Progress follows you between iPhone, iPad and Mac, and I didn’t want a backend or accounts for it. It runs on iCloud key-value storage, where each device uploads only what was played on it and the totals are added up. Playing offline on two devices and reconnecting can’t lose a solve or double-count one — best times take the best value, badges get merged, and the streak follows whichever device played most recently.

🔹 What It Doesn’t Have

No ads. No accounts. No analytics. No data collected. It works completely offline. I’d rather the app be small and quiet than squeeze anything out of it.

🔹 Final Thoughts

Zendoku Grove is the Sudoku app I kept wishing existed, so I built it. It’s free, for iPhone, iPad and Mac.

👉 Get Zendoku Grove on the App Store

🔹 If you download it and give it a spin, I’d genuinely love to know how it went. Drop a comment below and tell me which play style you picked — Gentle, Balanced or Challenge — or just what stuck with you. I read every one.

0 0 votes
Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted