Habit tracker mobile app — dopamine-driven, streak-first, gamified micro-habits.
Status (2026-04-20): Migrating Expo React Native → Flutter for 100% pixel parity with canonical stitch design. Codebase cleared, Flutter project to be scaffolded in Phase 1.
flutter pub get
flutter run --release -d <iPhone-udid>stitch_streakfire/— canonical design (HTML + PNG per slug, READ-ONLY source of truth)supabase/— DB schema, migrations, Edge Functions (preserved across migration)docs/— architecture, monetization, ad compliance, launch guides (Flutter-updated)plans/— plan history + active migration planagent-hub-memory/streakfire/— tasks, ADRs, context notes.env,.env.example— Supabase URL, RevenueCat keys, AdMob IDsapp-idea-streakfire.md— full product spec (1134 lines)CLAUDE.md— Claude Code agent rules + tech stack guide
- Flutter stable + Dart 3.x
- Routing:
go_router - State:
riverpodv2 - Backend: Supabase (auth, Postgres + RLS, Storage, Edge Functions, pg_cron)
- Monetization: RevenueCat (
purchases_flutter) + AdMob (google_mobile_ads) + ATT (app_tracking_transparency) - Auth:
sign_in_with_apple,google_sign_in, Supabase Email OTP - Local storage:
hiveorshared_preferences - Notifications:
flutter_local_notifications - Visual regression:
golden_toolkit
- Migration brief:
plans/reports/prompt-260420-2300-ah-plan-brief-migrate-expo-rn-to-flutter-full-rewrite-pixel-parity-100pct-and-pre-cleanup.md - Rollback:
git reset --hard pre-flutter-migration-261(pre-cleanup commit5d66512)
- Pixel parity 100% target vs
stitch_streakfire/{slug}/screen.png - Visual-diff gate Δ≤2% blocks merge
- Primitives-only screen composition (no hardcoded hex/radius/shadow)
- Fonts: Sora + DM Sans bundled local
- Fire palette locked (L0-L6)
- Dark-first (#0F0F0F base)
Ship to App Store. Dual objective: learn full stack + earn revenue via Pro subscription + IAP + ads (compliant).