Skip to content

MusicGenius

Learning music theory through short drills and little pixel-art games. I built it by myself in five months, and people in 23 countries have used it to learn.

Role
Designer & builder
Period
Apr 2026 — now
Status
Live · musicgenius.app
Built with
React, Tone.js, Supabase, Stripe
5 monthsfrom an empty repo to 10 games and a 92-skill course, solo
23countries where people have used it to learn
8,462answers given in lessons, 79.6% of them right

Most ways to learn music theory are either a dry textbook or a long course. I wanted something closer to a game you can open for five minutes and still get better at it.

MusicGenius is that: short drills where you build scales, name keys, recognize intervals by ear and read rhythms, wrapped in an 8-bit look, plus a proper course underneath so the practice adds up to something.

[MUSICGENIUS-EXPLAINER] REMOTION EXPLAINER · COMING SOON
From the games hub to a lesson, notes drawn on the staff, and a chord progression in the Studio.
01

Games first

On the first day I had three playable games. Five months later there are ten: build the scale, fix the scale, build the chords, name the key, pitch ID, name that tune, tone match, a little platformer where you jump on the right scale degrees, rhythm tap and sight reading.

They all follow the same simple loop, start, play, see your score, so learning one teaches you all of them. Each has a practice mode with streaks and a 60-second time trial with a leaderboard.

02

A real course behind the games

Games alone get old fast, so I built a course on top: 92 skills across 6 tiers and 22 units, from note names to modulation, with 22 different kinds of exercises. Each unit ends with a boss run inside one of the games. Reviews come back on a spaced repetition schedule, so the things you got wrong show up again right before you’d forget them.

03

Drawing the sheet music myself

The usual notation libraries were heavy for what I needed, so I wrote my own staff renderer in plain SVG: clefs, notes, key signatures and labels, in about 350 lines. There’s also a single audio engine for the whole app, instead of one per game, and a chord progression generator in the Studio that explains why each progression works. The generator has no dependencies at all, and a test checks that it stays that way.

04

Testing instead of guessing

I tested the main button on the homepage: send people straight to sign up, or let them try a lesson first. Sending them to sign up got 16.3% of people to create an account, against 6.0% for try-first. The sample was small and the result not statistically significant, but the gap was big enough that I shipped it.

Every new mechanic goes out switched off, behind a flag, and gets turned on with a one-line change, so anything can be rolled back in seconds.

05

The bug people were paying for

While building a free streak freeze, I found out that the paid one had never worked. People were spending gems on it and the app never actually used the freeze. I fixed it with a small database trigger instead of rewriting the riskiest part of the backend, and now it does what it says.

NextFaves →I redesigned the app’s Pro plan, onboarding and paywalls. Now we also work as a small venture studio, testing ideas with real people before building them.