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
| Screen | Status |
|---|---|
| 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
| Task | Est. | Notes |
|---|---|---|
| RevenueCat webhook handler | 0.5d | POST /api/v1/webhooks/rc — sync IAP subscriptions with DB |
| Unified subscription service | 0.5d | Merges RevenueCat (mobile IAP) + Stripe (web) into single tier status |
| Push notification backend | 1d | Store device tokens, trigger pushes for reading complete, daily reminder, subscription events |
| Mobile auth endpoints | 0.5d | Better 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
Deep Linking / Universal Links — 0.5 day
- [ ] 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
useTranspattern 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
| iOS | Android |
|---|---|
| iPhone SE (3rd gen) | Pixel 7a |
| iPhone 14 | Samsung Galaxy A54 |
| iPhone 16 Pro Max | Samsung Galaxy S24 |
Grand Total
| Category | Days |
|---|---|
| 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
| Item | Risk | Mitigation |
|---|---|---|
| Paywall / IAP | Most underestimated feature in mobile dev | Use RevenueCat to abstract Apple/Google billing complexity |
| Reading flow animations | Arc wheel + shuffle + flip is animation-heavy | Prototype the wheel first. Use Reanimated on UI thread. |
| Auth (3 providers) | OAuth config, token handling, error states | Use expo-apple-authentication + expo-auth-session for Google |
| Apple App Review | Tarot content may trigger "fortune telling" scrutiny | Frame as "AI-powered self-reflection and mindfulness." Include disclaimers. |
| Cross-platform subscription sync | Users subscribing on web vs mobile | Unified subscription service checking both RevenueCat + Stripe |
Time-Saving Tips
- Screenshots: Use Fastlane
snapshotto automate — manual screenshots across locales takes hours. - Privacy Policy / ToS: Use a generator (Termly, iubenda) for v1 instead of writing from scratch.
- Do Apple first: Simpler store. Adapt everything for Google after.
- RevenueCat: Eliminates ~2 days of IAP plumbing (receipt validation, cross-platform sync).
- EU VAT: Both Apple and Google collect VAT on your behalf for consumer purchases.