Skip to main content
All projectsRecruiter profile

ThaiHabit · Mobile & learning

Building a complete mobile learning product

I designed and engineered ThaiHabit across the learning experience, native app, on-device storage, and supporting services. It brings Thai script, listening, vocabulary, speaking practice, and spaced review into one product.

My role
Founder & Lead Engineer
Engagement
Independent product
Period
2025-Present

Mobile product

An independently developed React Native / Expo product. Downloaded lessons support offline practice; speech feedback, purchases, and account sync require a connection.

Explore ThaiHabit

45-second product guide

A ThaiHabit practice session

ThaiHabit guided Thai reading lesson

01 / 03

Connect script and sound

A guided reading lesson introduces Thai letters in the context of a word, connecting written form with pronunciation.

Engineering: I connected structured lesson content and audio playback through native practice interactions.

Three screens from the native app, showing how lessons, audio, and active recall connect. Play the guide or explore each step.

Read all steps
  1. Connect script and sound. A guided reading lesson introduces Thai letters in the context of a word, connecting written form with pronunciation.
  2. Listen and distinguish. Listening practice asks the learner to identify what they hear, reinforcing the connection between Thai script and sound.
  3. Recall the word. Vocabulary practice prompts an answer before revealing it, moving from guided instruction to active recall.

Project at a glance

The need
Learning Thai requires more than recognizing letters: learners need to connect script, sound, meaning, and recall through repeated practice.
What I delivered
A native learning product that brings lessons, audio, vocabulary, and spaced review together, with local practice state and integrated subscription access.

Product screenshots are captured from the native app.

My contribution

  • Owned the product experience and React Native / Expo implementation, from learning-flow design to native interaction details.
  • Built script lessons, listening exercises, vocabulary practice, and spaced review as connected parts of the learning experience.
  • Implemented on-device persistence, audio handling, and downloaded lesson support to carry practice across sessions.
  • Integrated account services and RevenueCat subscription access alongside the app’s connected learning features.

Technical challenge

The app has to connect written Thai, sound, and meaning while coordinating audio, exercise state, and review progress. Those interactions also need clear behavior when a session ends or connectivity changes.

My approach

I built the learning flows in React Native / Expo, with SQLite and MMKV for on-device data and downloaded media for supported offline lessons. Account services, connected speech features, and RevenueCat subscriptions handle the parts that depend on a network.

Engineering decisions

Give practice a local data layer

I used on-device storage for practice state and downloaded content. Supported lesson interactions can work locally, and session continuity does not depend entirely on a round trip to the server.

Make network requirements explicit

Downloaded lessons, speech feedback, purchases, and account sync have different needs. I separated local practice from connected services so offline support has a clear scope rather than an all-or-nothing promise.

Explore the system architecture

The native app coordinates practice and audio. On-device storage holds learning state and downloaded content, while connected services handle accounts, subscriptions, and online features.

System architecture

Select a component to explore its responsibilities.

Data flow
1.Read content & save practice
2.Connected feature request
3.Download or sync when online

Learning application: responsibilities

Native practice interactions
Audio playback
Lesson navigation

Technology

  • React Native
  • Expo
  • TypeScript
  • SQLite
  • MMKV
  • RevenueCat
  • Supabase
WhatsApp