Flutter 3.38+ with Riverpod 3 and GoRouter 17. Feature-first layout under lib/features/ — auth, neighborhood, neighborhood_stories, onboarding, search, checklist, commute — with data-heavy features split into presentation/, domain/, data/ layers. Shared code in lib/core/. Riverpod 3 with code generation drives state and async data; ref.invalidate after every write keeps caches honest. Freezed models guarantee immutability across async boundaries.
Mapbox integration with batched annotations. Point and circle annotation managers, batched annotation creation via createMulti(), geocoding-driven address search, light/dark style swap that follows the app theme, and defensive disposal to absorb mid-RPC platform-view teardowns.
RevenueCat paywall with trial-aware CTA. Hard paywall gate route (/paywall) for non-Pro users. Custom entitlement claim verification. Trial CTA reads introductoryPrice from the SDK directly — no hardcoded strings. Restore purchases flow included.
Dual crash reporting: Sentry + Crashlytics. Sentry initialized first inside its own appRunner zone, then Crashlytics layered on top by chaining — never replacing — FlutterError.onError and PlatformDispatcher.onError. Firebase Auth UID pushed to both as the user identifier on every auth state change. VM/farm SIGABRT filter in beforeSend keeps the noise floor low.
RelocateNeighborhoodLayout scaffold. AppBar, hamburger drawer, glassmorphic 10-tab NeighborhoodTabBar — keeps all neighborhood sub-screens visually consistent without per-screen Scaffold boilerplate.
Two complete themes. "Informed Curator" light theme (Manrope + Inter, surface hierarchy via tonal shifts, no 1px borders) and a tactical/mission dark theme (JetBrains Mono headlines, cyan #00F2FF primary). Both bundled as font assets.
Features delivered. 4-slide cinematic onboarding carousel ending in a paywall gate. Firebase Phone Auth with country picker, SMS OTP, and debug-build appVerificationDisabledForTesting. Moving checklist, favorites, profile + edit-profile, settings, briefing, stories (feed + detail + create), cost-of-living, weather, flood, offender registry, commute calculator. iOS + Android release builds with obfuscation, split debug info, Sentry symbol upload, and Crashlytics native symbol upload via the Gradle plugin.