I

I made a spaced-repetition-based language learning app

Hacker News

I made a spaced-repetition-based language learning app

I don't know who all here is interested in language learning, but I thought I'd share something I've been working on. I was frustrated by the inefficiency of Duolingo, and while the rational choice might have been to try some other apps, I decided to just make my own. You can use it here: https://yap.town/ - btw it's totally free and I don't intend on changing that. It's based on pedagogy principles like spaced repetition and the testing effect. I genuinely think it's probably the most efficient language learning app out there, though it's less polished since I only work on it in my spare time. (And because I haven't tried every language learning app out there, I can't really conclusively make that determination, but I still think it's the best for reasons I'll get into.) By the way, the frontend is mostly Rust compiled to WASM, which enabled performance optimizations that would've been tough in JavaScript. One other thing: the app is local-first and has cross-device sync based on CRDTs, which I figure should be a hit here. Honestly, that was pretty much as much work as the entire rest of the app combined. The source code is here: https://github.com/anchpop/yap ---- Building this taught me a lot about spaced repetition. The core idea with Yap is that it tests you with sentences that contain words you need to practice. But this gets tricky because words have multiple uses. If you mistranslate a word used one way, practicing it in a different context isn't helpful. My solution uses NLP (using spaCy) to annotate words with their parts of speech and lemmas, which distinguishes different uses and conjugations of the same word. I also maintain a database of "multi-word terms", because many phrases (such as "a lot") need to be learned as units. For spaced repetition, the scheduler is FSRS, which is state of the art. For users with prior language exposure, I automatically adjust difficulty by analyzing word frequency against what they seem to find easy, helping me show them the most common words they don't yet know. Using the app feels odd at first - after learning just a few words, you can already form sentences like "Why did you do this to me?" These sound complex but use only common words. Unlike Duolingo teaching you "apple" early on, learning the most frequent words first lets you grasp sentence structure immediately, then figure out remaining words from context. No app is a complete language learning system, this included, but I hope it's a useful supplement to whatever else you're doing to learn a language. One useful supplement to my app is the Pimsleur method, which I have been using as well and having a lot of success with. ---- on Apple platforms, the app requires the latest version of Safari because I use some APIs that were only recently implemented on Apple platforms. Desktop users are always fine with Chrome of course, regardless of platform. I've considered fixing this, but it would kind of be a pain, and because I'm primarily making the app for myself I haven't put too much effort into things that would not benefit me.

Share card

Actual performance

4points
7comments
Did not reach leaderboard

Launch Intel predictions

Analyze your own launch →
Indie HackersFits the IH revenue-focused audience · Missing: supports, reddit linkedin, podcasting
94%94% predicted probability of success on Indie Hackers, based on ML models trained on real launch data.
best fitHighest predicted score across all platforms for this description.
Product HuntOn track for Day 1 leaderboard · Strong signals: apple, apps, user · Missing: mac, agents, macos
82%82% predicted probability of success on Product Hunt, based on ML models trained on real launch data.
Hacker NewsStrong engagement from HN community · Strong signals: ide, io · Missing: https docs, excited, just released
61%61% predicted probability of success on Hacker News, based on ML models trained on real launch data.
nativeThis product was originally launched on this platform.
TrustMRRFits verified-revenue profile · Strong signals: apps, users, way · Missing: mobile apps, ios, personal
57%57% predicted probability of success on TrustMRR, based on ML models trained on real launch data.
AppSumoMay struggle as an AppSumo deal · Strong signals: platform, efficient, users · Missing: plus, intuitive, reviews
36%36% predicted probability of success on AppSumo, based on ML models trained on real launch data.
Acquire.comPre-revenue stage for this audience · Missing: arr, mrr, revenue
13%13% predicted probability of success on Acquire.com, based on ML models trained on real launch data.
BetaListMay not resonate with beta-testers · Missing: web3, chat, crypto
0%0% predicted probability of success on BetaList, based on ML models trained on real launch data.

Incorrect prediction on native model

Similar products

Delve
Delve41%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Your go to Language Learning App

Indie Hackerscommitment-full-time
Encore!!!
Encore!!!22%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Encore!!! is a language learning app

Indie Hackerscommitment-full-time
Fluente
Fluente48%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Language learning App

Indie Hackers1ai
Khru
Khru37%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Language Learning app

Indie Hackerscommitment-side-project
Learn Malayalam
Learn Malayalam36%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Language learning app

Indie Hackers1advertising
La
Language Learning App Using Naive Bayesian Classifier to Be Challenging33%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Language Learning App Using Naive Bayesian Classifier to Be Challenging

Hacker News2
Fluentt
Fluentt25%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

AI-powered language learning app

Indie Hackerscommitment-full-time
Nativeway
Nativeway40%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Language learning app which is only focusing on speaking

Indie Hackers1ai
Kango
Kango53%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Chinese language learning app

Indie Hackerscommitment-full-time
Ma
Malan Chat, a full immersion language learning app for 62 languages36%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Malan Chat, a full immersion language learning app for 62 languages

Hacker News1