Tarot Mobile App
Overview
I built a cross-platform tarot app with Expo and React Native that combines card-based readings, AI chat guidance, account-based progression, and multilingual UX for a consumer mobile product.
Problem
- The app needed to run on iOS, Android, and web from one codebase.
- Tarot readings had to feel interactive, not static text output.
- AI chat responses needed card-aware context and language control.
- User progress and in-app currency had to persist across sessions.
- The product needed a foundation for monetization flows.
Solution
- I implemented an Expo Router architecture with protected app routes and auth-gated navigation.
- I integrated Firebase Auth and Firestore for sessions, user state, and content lookups.
- I built the reading flow with animated card deck interactions and category-based spreads.
- I added AI chat via OpenAI
gpt-4o-mini, including prompt composition with selected card context and forced response language. - I implemented localization infrastructure with i18next and seven languages.
- I added a gold-based economy model (
card open: 10,chat message: 5) and shop/ad/IAP integration points.
Results
- One TypeScript codebase for mobile and web delivery through Expo.
- Persistent user state with Firebase-backed auth and profile data.
- Card-aware AI consultation flow with dynamic prompts from Firestore and game state.
- Multi-language UX available in English, Korean, Japanese, Chinese, Spanish, French, and Indonesian.
- Monetization-ready structure with virtual currency logic and prepared ad/IAP hooks.
Stack
Expo, React Native, TypeScript, Expo Router, Firebase Auth, Firestore, OpenAI API, i18next
App Screens

