Skip to content

Mobile App — Release Checklist

This document tracks all remaining work items for the MysticX mobile app public release. It covers screen development, backend integration, store compliance, and pre-launch tasks.

Last updated: April 19, 2026


Screen Development

Completed

ScreenStatus
Home tab✅ Done
Discover tab✅ Done
Profile / Me tab✅ Done
Tarot Reading Flow✅ Done
Tarot Reading Chat✅ Done
Onboarding✅ Done
Journal tab🟡 1/3 done

Remaining Screens

Standalone Card of the Day Module (before Tarot Reading) — 0.5 day

  • [ ] Entry point from Home / navigation
  • [ ] Dedicated standalone daily card screen
  • [ ] Result state polish + CTA into deeper reading

AI Memory — 0.2 day

  • [ ] View stored AI memory facts
  • [ ] Delete individual facts
  • [ ] Clear all memory

Account / Profile Edit — 1 day

  • [x] Edit profile (name, email, avatar upload)
  • [x] Avatar image picker + upload

Settings (polish) — 0.5 day

  • [x] Theme toggle (light / dark / system)
  • [ ] Notification preferences toggles
  • [ ] Language selector
  • [ ] Help, Privacy Policy, Terms of Service links
  • [x] Sign Out button
  • [ ] Delete Account flow (reason selection + confirmation)

Discover Sub-screens — 2 days

  • [ ] Card spreads — list + detail (0.5d)
  • [ ] Tarot cards — grid + detail with meanings (0.5d)
  • [ ] Card skins — grid + purchase flow (0.5d)
  • [ ] Tarot readers — list + preview + unlock/purchase (0.5d)

Journal Sub-tabs — 1.6 days

  • [ ] Readings list (history) — 0.5d
  • [ ] Card of the Day calendar view — 0.5d
  • [ ] Weekly guidance — 0.3d
  • [ ] Soul journey — 0.3d

Auth Screens — 1 day

  • [ ] Sign in (Apple, Google, Email)
  • [ ] Sign up (Apple, Google, Email)
  • [ ] Forgot password
  • Risk: 3 OAuth providers may push this to 1.5–2 days

Paywall / Subscription — 3 days

  • [ ] Paywall modal (triggered on insufficient credits)
  • [ ] Subscription plans (Gold weekly/yearly, Diamond)
  • [ ] Subscription management screen (current plan + manage link to OS settings)
  • Risk: IAP integration consistently the most underestimated feature. Could take 4–5 days without RevenueCat.

Screen Development Subtotal: ~9.8 days


Beyond Screens

Backend Work for Mobile — 2–3 days

TaskEst.Notes
RevenueCat webhook handler0.5dPOST /api/v1/webhooks/rc — sync IAP subscriptions with DB
Unified subscription service0.5dMerges RevenueCat (mobile IAP) + Stripe (web) into single tier status
Push notification backend1dStore device tokens, trigger pushes for reading complete, daily reminder, subscription events
Mobile auth endpoints0.5dBetter Auth uses cookies on web; mobile needs Bearer token flow via Secure Store

Push Notifications — 1 day

  • [ ] Expo Notifications setup (APNs certificates + FCM keys)
  • [ ] Device token registration on backend
  • [ ] Notification types: reading complete, daily card reminder, weekly guidance ready, subscription events
  • [ ] Deep linking from notifications to specific screens
  • [ ] Notification preferences screen (already in Settings)

App Icon, Splash Screen, Fonts — 0.5 day

  • [ ] App icon (1024×1024 source + all generated sizes)
  • [ ] Splash / launch screen (animated or static)
  • [ ] Custom serif accent font for card names and reading titles

Error Handling & Edge Cases — 0.5 day

  • [ ] Error boundaries (global + per-screen)
  • [ ] Network offline banner
  • [ ] Empty states (no readings yet, no credits, first-time user)
  • [ ] Loading skeletons
  • [ ] URL scheme: mysticx://reading/123, mysticx://card-of-day, etc.
  • [ ] Associated Domains config (iOS)
  • [ ] App Links config (Android)
  • [ ] Required for push notification navigation and social sharing

Analytics & Crash Reporting — 0.3 day

  • [ ] Mixpanel event instrumentation (key flows: reading, purchase, daily card)
  • [ ] Crash reporting setup (Sentry or equivalent)

Localization (EN + ZH-CN) — 1–2 days

  • [ ] Extract all hardcoded strings into i18n dictionaries
  • [ ] Set up i18n framework (same useTrans pattern as web)
  • [ ] Translate mobile-specific strings (EN + ZH-CN minimum for v1)

Beyond Screens Subtotal: ~6–8 days


Store Compliance & Submission

App Store Connect (Apple) — 1.5–2 days

  • [ ] App metadata: name, subtitle, description, keywords (EN + ZH-CN)
  • [ ] Screenshots for all required device sizes (6.7", 6.5", iPad if supporting)
  • [ ] App Privacy nutrition labels (declare all data types collected)
  • [ ] Age rating questionnaire (tarot content — may flag as Mature Themes, frame as self-reflection)
  • [ ] Export compliance declaration (HTTPS encryption)
  • [ ] In-App Purchase product setup (each subscription + credit pack, pricing for all territories)
  • [ ] IAP review screenshots for each product
  • [ ] App Review notes + demo account with credits
  • [ ] Tax & banking agreements (Paid Apps Agreement, W-8BEN if non-US)

Google Play Console — 2–3 days

  • [ ] Store listing: descriptions, screenshots, feature graphic (different specs from Apple)
  • [ ] Data Safety section (very granular — declare every SDK: Firebase, analytics, etc.)
  • [ ] Content rating (IARC questionnaire, may trigger restrictions for fortune-telling in some regions)
  • [ ] Target audience & content declaration (NOT for children)
  • [ ] Financial features declaration (digital goods sales)
  • [ ] Ads declaration (even if no ads)
  • [ ] EU Digital Services Act (DSA) compliance — trader status, EU contact info
  • [ ] EU/UK subscription transparency — clear pricing, cancellation flow
  • [ ] In-app products setup (subscriptions + consumables for all territories)
  • [ ] Tax & payments profile (tax identity per country, VAT handled by Google MOSS)
  • [ ] App signing & release management (Play App Signing, internal testing track)

Shared — 0.5–1 day

  • [ ] Privacy policy page (hosted publicly, covers GDPR + CCPA)
  • [ ] Terms of service page
  • [ ] Support URL / contact email
  • [ ] GDPR compliance: data deletion endpoint, consent management (Delete Account screen covers part)

Store Compliance Subtotal: ~4–6 days


Testing & QA — 2–3 days

  • [ ] End-to-end testing on physical devices (iOS + Android)
  • [ ] IAP sandbox testing on TestFlight (Apple)
  • [ ] IAP testing on Google Play Internal Testing
  • [ ] Cross-platform subscription scenarios (subscribe on web → verify on mobile, and vice versa)
  • [ ] Fix bugs found during testing
  • [ ] Beta testing with internal team

Device Matrix

iOSAndroid
iPhone SE (3rd gen)Pixel 7a
iPhone 14Samsung Galaxy A54
iPhone 16 Pro MaxSamsung Galaxy S24

Grand Total

CategoryDays
Screen development~9.8
Beyond screens (backend, push, icons, etc.)~6–8
Store compliance & submission~4–6
Testing & QA~2–3
Total~22–27

Approximately 5–6 weeks with one developer + AI assistance.


High-Risk Items

ItemRiskMitigation
Paywall / IAPMost underestimated feature in mobile devUse RevenueCat to abstract Apple/Google billing complexity
Reading flow animationsArc wheel + shuffle + flip is animation-heavyPrototype the wheel first. Use Reanimated on UI thread.
Auth (3 providers)OAuth config, token handling, error statesUse expo-apple-authentication + expo-auth-session for Google
Apple App ReviewTarot content may trigger "fortune telling" scrutinyFrame as "AI-powered self-reflection and mindfulness." Include disclaimers.
Cross-platform subscription syncUsers subscribing on web vs mobileUnified subscription service checking both RevenueCat + Stripe

Time-Saving Tips

  1. Screenshots: Use Fastlane snapshot to automate — manual screenshots across locales takes hours.
  2. Privacy Policy / ToS: Use a generator (Termly, iubenda) for v1 instead of writing from scratch.
  3. Do Apple first: Simpler store. Adapt everything for Google after.
  4. RevenueCat: Eliminates ~2 days of IAP plumbing (receipt validation, cross-platform sync).
  5. EU VAT: Both Apple and Google collect VAT on your behalf for consumer purchases.

Internal documentation for MysticX team