NAP LABS

Cortix — competitive brain training

Chess.com meets Lumosity — real-time Elo matchmaking, daily challenges, and five game modes. Flutter + Supabase, with Claude driving the matching logic.

CLIENT
NAP Labs
ROLE
Design + Flutter engineering + AI
YEAR
2025
STATUS
In build
STACK
  • Flutter
  • Supabase
  • Claude API
  • Postgres

The idea

Brain-training apps like Lumosity are single-player and boring. Chess.com is competitive but only one game. Cortix is what happens when you combine the two: real-time Elo-matched brain games across five modes, with daily challenges and a global leaderboard.

The reason it exists is narrower than “brain training”. It is meant to be the thing you open before work rather than instead of it — a few minutes that warm the brain up, hold attention on one task, and make concentration something you can practise instead of something you either have or don’t. Most apps in this category measure time spent, which is the wrong number: an app you use for an hour has failed at the job. The competitive layer is there because it is the only mechanic that reliably brings people back daily without a streak guilt-trip.

This is a NAP Labs product. No client, no brief — studio time spent on a problem we wanted solved for ourselves.

The approach

Flutter for the client — one codebase, both platforms, low-latency 2D games render fine on Impeller.

Supabase Realtime for match state — sub-100ms updates across opponents.

Five game modes — memory, reflex, logic, spatial, verbal. Each is a self-contained widget on a shared game-loop scaffold, which is the part that actually matters: adding a sixth mode is a widget, not a release. More modes are in design now, and nothing has been cut to make room for them.

Claude as a matching co-processor, deliberately not a model. Elo is the base rating, but Elo alone handles new accounts, deliberate throwing and hot streaks badly. The obvious answer is to train something on match history. We do not have match history yet — so Claude runs a written rule set over those edge cases instead. It is legible, it can be changed in an afternoon, and when there is enough real play to train on, it is the thing that gets replaced. Building the cheap version first is not a compromise here; it is the only version the data supports.

The problem we have not solved

Elo matching needs a pool of people playing at the same time. Five modes split whatever pool exists into five. At the scale Cortix is at today, that is the whole problem — a small player base means either a long wait for a match or a bad one, and both are reasons to close the app.

The usual levers are known: widen the rating band the longer someone waits, fill with asynchronous ghost runs against a recorded session, or seed with bots that play at a target rating. Which of those Cortix takes, and in what order, is exactly what the current testing round is for. There is no answer here yet, and quoting one before the testing is done would be the kind of thing this studio writes blog posts against.

Where it is

Playable end to end on internal builds. Not on either store yet, and no public listing date — the honest position is that the matchmaking question above gets settled first.

A TestFlight cohort is forming now. If you want a build, email the studio and we will send you one; feedback on match quality and how long a session actually holds your attention is worth more to us at this stage than a five-star rating.

What we are not claiming yet

No numbers are published on this page because none have been measured properly. Match latency on Indian mobile networks, frame times on a ₹12,000 Android phone, and whether a session holds attention past three minutes are the three that decide whether the product works at all. When they are measured they will appear here, including the ones that look bad.

NEXT STEP

Have a product to ship?

Start a project ↗ hello@napdesigns.com