Kotoba Dōjō: Language Learning
Inspiration
There’s a particular frustration in learning a language: you recognise a word on a flashcard, then miss it completely in a sentence. You finish a lesson, but opening a book still feels like a different world. I wanted to bring those experiences closer together. Find a word in a story, save it, practise it, say it aloud, and meet it again with a little more confidence. That became Kotoba Dōjō.
The dōjō gave me a way to think about the whole app: a place you return to because you’re working on something. The lanterns, paper textures, and samurai-inspired world grew from that idea. As you learn, your dōjō grows with you.
What it does
Kotoba Dōjō connects vocabulary study, reading, and speaking in one place. You can start with a book and work through it chapter by chapter, or bring words you want to learn into your own decks. Adaptive flashcards help you revisit vocabulary over time. Different exercises give you more ways to practise, while spoken shadowing gets you saying the words aloud.
For Japanese learners, kana and romaji support can be adjusted as your reading improves. Alongside the study tools, there’s a more personal kind of progress: Takeshi develops, your dōjō changes, and your path and calendar show the work you’ve put in. I wanted those changes to make small sessions feel worthwhile. Ten minutes of practice should leave something behind.
How I built it
I built Kotoba Dōjō solo, across web and mobile. The mobile app uses React Native, Expo, and Expo Router, with a shared backend for accounts, decks, learning progress, and adaptive scheduling. The learning system brings together spaced repetition, custom vocabulary decks, reading, focused exercises, and speech recognition. RevenueCat handles subscriptions in the mobile app.
I also designed the visual world myself. That meant working on the learning logic and the details around it: how a card opens, how a chapter feels on a phone, where a lantern belongs, and how much information a screen can hold before it becomes tiring. Building the app meant moving between all of those scales, sometimes several times in the same day.
Challenges I ran into
The hardest part was deciding how much to show at once. Reading, flashcards, speaking, exercises, and progression all deserve space. Put every option in front of someone immediately, though, and a quiet place to study starts to feel like a control panel. I kept returning to a simple question: what does the learner need on this screen, right now? Some challenges were less visible but just as important. Review progress had to remain accurate between sessions. Speech recognition needed care across devices and languages. Japanese reading support had to help beginners without getting in the way later. Then there was everything involved in releasing an actual app: permissions, subscription states, platform differences, and store review. A feature working on my own phone was only the beginning.
Accomplishments that I’m proud of
I’m proud that Kotoba Dōjō is live on web and mobile. As a solo developer, getting the learning system, artwork, backend, and native experience to work together was a substantial undertaking. But my favourite part is seeing the connection between the pieces. A word you encounter while reading can become something you actively practise. That practice contributes to a place that changes as you keep going. The app now feels like the idea I had in mind: somewhere to spend time with a language.
What I learned
I learned that the next action matters enormously. After saving a word, where do you go? After finishing an exercise, do you understand what happened? When you return tomorrow, is it clear where to begin? Those small transitions shape the experience as much as the individual features. I also learned to give the less visible work its due. Error handling, permissions, and subscription edge cases don’t make exciting screenshots. They do determine whether someone can trust the app enough to make it part of their day.
What’s next for Kotoba Dōjō
The next step is to see where real learners get stuck—and where they choose to spend their time. I want to make the first session clearer, improve pronunciation feedback, and keep refining the connection between reading and practice. I’m especially interested in whether people return to a chapter and notice that something which felt difficult a week ago has become easier. That’s the progress I want Kotoba Dōjō to help people feel.
Learn a language. Live the story.
Built With
- android
- expo.io
- gcp
- ios
- react-native
- revenuecat
- typescript