How I built Kanji Monster

Kanji Monster started with a small frustration. I wanted to drill kanji for a few minutes a day, and every option I tried asked for more than a few minutes of setup first. I had to create an account, pick a plan, sit through a tour, and dismiss a notification about my streak. By the time I could actually practice, the urge to practice was gone. So I built the thing I wished existed, a page you open and immediately start using.

One rule, no friction before value

The whole project comes down to a single principle. Nothing should stand between you and your first practice question. No login wall, no onboarding carousel, no “choose your goals” screen. You land on the page and within a second or two you are looking at a kanji and choosing an answer. Every design decision after that was measured against this rule. If a feature added a step before the first question, it lost.

For me the breaking point was a run of evenings where I opened an app meaning to study, spent the first couple of minutes tapping through reminders and upsell screens, and closed it again without learning a single character. The tools were not bad. They were just built to hold my attention rather than to respect the few minutes I actually had. I wanted the opposite, something that spent my time on kanji and nothing else.

Why a web tool, not an app

A native app would have meant an install, a store listing, and an update cycle, which is more friction for users and more overhead for me. The web removes all of that. Kanji Monster runs in any modern browser on a phone or a laptop. There is nothing to download and nothing to keep updated on your side, and when I ship an improvement you just get it next time you open the page.

Running in the browser also shaped how progress is saved. Instead of a server-side account, Kanji Monster stores your progress in your browser's local storage. That keeps the tool free of signups and keeps your data on your device. The tradeoff is honest and worth stating, because clearing your browser data will reset your progress. For a lightweight daily drill, that felt like the right balance.

How the practice loop works

The core loop is deliberately boring, because boring is what you can do every day. You see a character, you answer, you get immediate feedback, and you move on. Rounds are short on purpose, short enough to finish in a coffee break, so that “I don't have time today” stops being an excuse.

Under the hood, the characters you miss come back sooner and the ones you know come back later. That is a lightweight take on spaced repetition, and it means your limited practice time flows toward what you haven't learned yet instead of re-drilling what you already know. I wrote more about the reasoning behind that in why repetition works for memorizing kanji.

On the building side, I kept it simple on purpose. The characters are grouped into small sets roughly by how commonly they show up, so beginners can start with the basics and work outward. The review timing is a light rule rather than a heavy algorithm. When you miss a character it moves to the front of the line and comes back within the same session, and once you get it right a few times it drifts further out. That was enough to feel helpful without turning the code into something I would be afraid to change later.

What I deliberately left out

Just as important as what went in is what I kept out. No leaderboards. No aggressive streak mechanics designed to make you anxious about missing a day. No paywalled “pro” tier that quietly makes the free version worse. These patterns boost engagement metrics, but they work by borrowing against the user's goodwill, and they clash with the whole point of the tool, which is to help you learn and then get out of your way.

Keeping the scope narrow had a practical benefit too. A tool that does one thing is a tool you can actually finish and keep working. Every feature you add is a feature you have to maintain, explain, and keep from breaking the others. Saying no to most ideas is how a solo project stays alive.

Free and open to everyone

Kanji Monster is free, with no account and no paywall. Most people would never pay a monthly subscription to drill kanji for five minutes a day, and locking the useful part behind a fee would defeat the purpose. Keeping it free and open means anyone can start practicing the moment they land on the page. If you want to know exactly what data the site does and does not collect, that is all laid out in the privacy policy.

What I would tell anyone building a small learning tool

Start with the smallest version that is genuinely useful, and ship it. Resist the urge to build the account system, the settings panel, and the social features before the core loop even exists. Put the value first, literally first, on the screen, before anything else, and let everything else justify its place against that.

The thing that surprised me most was how much people valued what was not there. The first bits of feedback were not about features. They were about how quickly the page loaded and how it never asked for anything. That told me the restraint was the product, and it is the part I am most careful to protect as the tool grows.

Kanji Monster is still growing, and I will keep refining it based on how people actually use it. If you try it and something feels off, or you wish it did one more small thing, I would genuinely like to hear it, and the contact page has the email. And if you are curious to just try it, that is the best place to start, at the Kanji Monster tool page.


← All notes