Skip to main content

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

Tarot App Intro Screen

Tarot App Main Screen