All case studies

Tanaroom: a language app people come back to

Our own product, designed and engineered in-house by OKET's two founders. A free language-learning app on the App Store, built around short daily practice and a fox you have to feed.

Client
OKET
Industry
Education / Language learning
Platform
iOS & Android
Services
Product design, UI/UX design, Mobile app development, Backend development, QA

The challenge

We tell clients we ship our own products. Tanaroom is the proof. It started as an internal bet: could our two-person core team - a product designer and a software engineer - take a language-learning app from blank page to the App Store, with no outside agency and no shortcuts on quality?

The hard problem in language learning is not teaching words. It is retention. Most learners install an app, do a few sessions, and quietly disappear. Many apps respond by burying the product in ads and dark patterns. We took the opposite position: minimal ads, maximum productivity. Short daily sessions that actually move a learner forward, and a reason to open the app tomorrow.

That meant every feature had to earn its place. With two people owning design, engineering, and product decisions, there was no room for speculative scope. The app had to be small, focused, and built for a habit - not for a feature checklist.

What we built

Design came first. Eliza built the product around one loop: a short daily session a learner can actually finish, a visible sense of progress, and a character who cares whether you show up. The fox is not decoration. It is a virtual pet the learner feeds by practicing - miss your session and you feel it. Goals with rewards sit on top of that loop, and an onboarding flow gets new users into their first review fast.

Oleh engineered the app in React Native with TypeScript. The fox and the app's custom graphics run on React Native Skia, so the character animation feels native rather than bolted on. Over-the-air updates let us ship fixes and improvements without waiting on an App Store release cycle.

Monetization follows the same principle. The app is free, with a plan that never expires, and an optional auto-renewing subscription behind a clean paywall. Push notifications - delivered through Firebase Cloud Messaging and Notifee - bring learners back to their daily session instead of shouting at them.

Because this is our own product, we instrumented it the way we advise clients to: Firebase Analytics and PostHog for behavior, Sentry and Crashlytics for stability. A NestJS backend handles the server side, and a Next.js landing site presents the app in multiple languages.

Flashcards with card review

Learners create their own decks by hand or generate them with AI, then strengthen memory through regular review sessions.

Learning from real texts

Paste or generate a short text, highlight the words worth keeping, and save them straight into a deck. Vocabulary comes from context, not random lists.

Quizzes, trainings, and readings

Several practice modes beyond flashcards, so daily sessions stay short but never identical.

Goals and rewards

Learners set their own goals and earn rewards for hitting them. Progress is tracked and visible, which keeps the next session worth opening.

A fox you have to feed

The app's mascot is a virtual pet that lives on your practice. Feeding the fox turns an abstract habit into something a learner is responsible for.

Free plan, optional subscription

The free plan has unlimited duration - no time-limited trial. An optional auto-renewing subscription sits behind a paywall for those who want more.

Push notifications

Well-timed nudges through Firebase Cloud Messaging and Notifee remind learners about their daily session without becoming noise.

Technologies

  • React Native
  • TypeScript
  • Redux Toolkit
  • React Navigation
  • React Native Skia
  • Firebase
  • Notifee
  • Sentry
  • PostHog
  • Over-the-air updates
  • Node.js
  • NestJS
  • Next.js

We build products like this for clients too

Same team, same process: design, engineering, and shipping under one roof. Tell us what you want to build.

Contact us