Learn Language
PersonalA personal language learning app using chunk-based learning and spaced repetition.
The Problem
Language learning apps like Duolingo gamify the experience but often fail to build real conversational ability. They teach isolated words rather than usable phrases, and their spaced repetition algorithms are hidden behind premium subscriptions. I wanted a learning tool that focused on practical language chunks, phrases I could actually use in conversation, with transparent spaced repetition that I could control and customize.
The Solution
Learn Language is a personal PWA that I built to teach myself new languages using a chunk-based approach. Instead of learning individual words, the app presents language in meaningful chunks: common phrases, sentence patterns, and conversational expressions. These chunks are reviewed using spaced repetition, where items you struggle with appear more frequently and items you know well appear less often. The result is faster acquisition of practical, usable language skills.
Key Features
The app organizes language content into themed decks such as greetings, travel, food, and daily life. Each chunk includes the target language text, a phonetic transliteration, and a translation. The spaced repetition algorithm tracks your performance on each chunk and schedules reviews at optimal intervals. Progress tracking shows which chunks you have mastered and which need more practice. As a PWA, the app works offline, so you can practice during commutes or in areas without internet access.
Technical Details
Learn Language is built with HTML, Tailwind CSS, and JavaScript, with all language content stored in JSON files. The spaced repetition algorithm is implemented in vanilla JavaScript and runs entirely client-side. Progress data is stored in the browser using local storage. The app follows PWA standards with a service worker for offline caching and is installable on any device. The modular JSON structure makes it easy to add new languages and content decks.
Impact
This tool has been invaluable in my personal language learning journey. The chunk-based approach has helped me acquire conversational phrases much faster than traditional word-by-word learning. While this is a personal tool, it represents my interest in educational technology and my belief that effective learning tools do not need to be complex or expensive.