Cases
Language-learning appMobile Apps

Learn BM

An offline-first Flutter flashcard app for learning Malay: native text-to-speech, spaced repetition, and session resume, built to scale to new languages.

Learn BM

The board state

Language learning that fits real life

Learning a language needs consistent practice and instant feedback, but most tools demand a connection and a lot of friction. Learn BM was built to remove both: an app that makes studying Malay vocabulary intuitive and works anywhere, online or not.

The move

Interactive flashcards, offline by design

The app teaches both directions, Malay to English and back, with native text-to-speech pronunciation and 20 vocabulary categories covering 1,300+ words. Session persistence drops learners back on the exact card they left, and a “difficult words” feature keeps focus on what they struggle with. Spaced repetition (SM-2), quiz modes, and an achievements system keep practice varied and motivating.

Built in Flutter with a type-safe Drift (SQLite) database, everything runs on-device. JSON-based seeding and a clean, modular architecture mean new languages, categories, or word sets slot in without touching the core.

The result

A learning tool built to grow

Learn BM runs on Android and in the browser from one Flutter codebase (iOS is one build target away), offline-capable and ready to expand from a focused Malay app into a multi-language platform. It is a small product with the architecture of a much bigger one.

1,300+

words across 20 categories

2

platforms, one codebase

100%

offline-capable

Built with

FlutterDrift (SQLite)flutter_ttsSharedPreferences