Skip to content
LESS- home
All work
Web + mobileYear 2026

Rook Chess

A chess learning app for phones and browsers, built as one product with two front ends.

Rook Chess on a laptop
Rook Chess on a phone

Overview

People practise chess in two completely different modes. On a phone it is three minutes in a queue: one puzzle, one line, put it away. At a desk it is an hour with a board open, walking through a game move by move and reading why each one was played. Most learning apps pick one of those and treat the other as an afterthought — a cramped desktop site, or a mobile app that is really a website in a frame.

Rook Chess had to do both properly. The obvious route was two projects: an app team and a web team, two backlogs, two release cycles, and a shared database nobody owns. That is twice the cost and, worse, it guarantees the two drift — a lesson added on the web takes weeks to reach the phone, and progress made on the phone shows up late at the desk.

We scoped it instead as one product with one backend and two front ends. Lessons, positions, progress and spaced-repetition scheduling live once, behind one API. React Native carries the phone, Next.js carries the desk, and each renders the same material in the shape that mode actually needs: the phone gets a single card and a big board, the desk gets the board beside the annotation, because a chess board is the one element that cannot shrink.

The scope was written down before any code existed, including what was deliberately left out of version one — no engine analysis, no multiplayer, no accounts beyond what progress tracking requires. Those are the features that expand a chess product indefinitely, and naming them as excluded up front is what let the price and the date hold to launch.

What we built

  • One backend, two front ends: React Native on the phone, Next.js at the desk
  • Lessons, progress and scheduling stored once, so the two never drift
  • Version one scoped in writing, including what was left out

What it did

  • One backend serving both clients: a lesson written once appears on the phone and at the desk, with no second release to keep them level.
  • Version one shipped at the price and on the date agreed before the scope was written.
  • Adding a lesson type is one change in one place, so the next feature costs what it should rather than twice.

Let's build it.

Tell us what you need. We come back in writing with a price and a date.

Next projectCafé redesign, Vienna