// the find
subconcept-labs/ulangi
Ulangi is a language flashcards app with spaced repetition system and more.
Ulangi is a React Native flashcard app for language learning with spaced repetition, built-in dictionaries, TTS, and image search. It's a full-stack monorepo with a mobile app, backend server, and Google Sheets add-on. Aimed at self-directed language learners who want more control than Anki's UI offers.
The monorepo is well-structured for its scope — shared types in ulangi-common keep the mobile app and server in sync without duplication. The extra-field system (Hiragana, Pinyin, Zhuyin, Romaji, IPA, etc.) is genuinely thoughtful for CJK and phonetic languages where Anki requires manual setup. SpacedRepetitionScheduler and WritingScheduler are separated into testable classes with their own test files, not buried in UI logic. The Google Sheets add-on for bulk vocabulary import is a practical differentiator — most competitors ignore power users who manage word lists externally.
Last commit was January 2023 — the app is effectively abandoned, and the Play Store listing may already be gone or stale. The server-side architecture requires self-hosting to get sync working, which is a significant barrier given there's no current maintainer and no clear path to get the cloud backend running. The lerna monorepo setup with individual package-lock.json files is a maintenance headache that likely contributed to the project's death. No export-to-Anki path means any vocabulary you build is trapped here, which is a real risk given the project's status.