Functionality map
Stoppr
Sustained engagement around sugar-free streaks and daily habits, with optional premium access.
A live map of what this software actually does — start here, then open any capability for its documentation.
Drag to pan · scroll to zoom Click a capability to expand · double-click to open its docs
This map has 10 major capabilities. Expand one to see what it includes, then open any item for its documentation.
-
Application core 5 Startup, routing, navigation, deep links, widgets.
- Application startup Initializes Flutter bindings, env, RevenueCat, Firebase, analytics, notifications, and platform SDKs before runApp.
- Startup routing Chooses WelcomeVideo, onboarding resume, PrePaywall, or MainScaffold from auth, onboarding completion, and paid status.
- Deep link handling Processes payment success, home/pledge/panic/meditation schemes, share invites, and promo deep links; some declared routes lack handlers.
- Main navigation Bottom-tab MainScaffold hosts home and primary feature surfaces with an initialIndex deep-link entry.
- Home screen widgets Flutter home_widget bridge syncs streak and accountability data to iOS WidgetKit and Android AppWidgets; app group id is still a placeholder.
-
Authentication 2 Sign-in providers and guest access.
-
Onboarding 4 New-user funnel from welcome through paywall.
- Onboarding introduction Welcome video and early onboarding pages introduce the product and present auth or skip options.
- Onboarding questionnaire Multi-page questionnaire saves answers locally and to users/{uid}/onboarding/questionnaire with resume support.
- Onboarding profile and goals Collects name/age/gender, symptoms, and goals into Firestore onboarding subdocuments.
- Onboarding personalized analysis Animated analysis screens plus nutrition onboarding compute calorie goals before benefits and paywall.
-
Subscription & paywalls 3 Superwall, RevenueCat, quotas, gating.
- Main paywall PrePaywall registers Superwall placements and handles purchase success, but placement IDs are mostly INSERT_YOUR_* placeholders.
- Soft paywalls and quotas FeatureQuotaService and contextual Superwall placements exist, but QUOTA_SYSTEM_ENABLED is false on major feature screens.
- Subscription access gating Paid access is determined from Superwall subscription status and RevenueCat CustomerInfo, not Firestore alone.
-
Home & daily wellness 5 Dashboard, streak, check-in, pledge, panic, relapse.
- Home dashboard Central dashboard orchestrating streak display, check-in widgets, panic entry, banners, and feature shortcuts.
- Sugar streak tracking Persists streak counters in SharedPreferences and Firestore and syncs values to home widgets.
- Daily check-in and pledge Daily pledge/check-in records success or failure with feelings/notes and can reset streak on relapse indication.
- Panic intervention Guided multi-step panic flow with randomized tricks and breathing/meditation helpers.
- Relapse recovery flow Relapse UI collects reason/help chips, resets streak, and may schedule recovery-challenge notifications; detailed reason chips are not fully persisted.
-
Community & accountability 3 Forum, chat, partners.
- Community forum Firestore-backed posts and nested comments; blocked-user filtering is incomplete on the current Cubit stream path.
- Community chat Realtime chat collections official_chat and official_chat_{lang}; Crisp provides separate support chat.
- Accountability partners Partnerships and matching pool in Firestore; joining the pool requires an active subscription.
-
Education & content 3 Videos, articles, chatbot.
- Learn video lessons Hardcoded Mux HLS lesson catalog with local subtitle assets and completion tracked in SharedPreferences.
- Articles education Loads article content from assets and syncs reading progress to SharedPreferences and Firestore.
- Melinda chatbot assistant CBT-oriented AI assistant using Groq chat/transcription and OpenAI speech, limited to 20 API interactions per day.
-
Nutrition & food 4 Scanning, calories, recipes, Rate My Plate.
- Sugar food scanning Vision analysis via Groq-compatible endpoint with local image cache and optional Firebase Storage fallback; nutrition path uses ApiRateLimitService (not FeatureQuota soft-paywall).
- Calorie nutrition tracking Firestore food_logs, daily_summaries, nutrition goals, body metrics, and workout logs under the user document.
- Recipe discovery Searches Edamam first with Spoonacular fallback; favorites stored under users/{uid}/favorite_recipes.
- Rate My Plate Plate photo scoring via Groq vision and OpenAI results; quota gate present but disabled.
-
Wellness tools 3 Meditation, breathing, challenge, fasting.
- Meditation and breathing In-app meditation and breathing exercise UIs, also reachable via stoppr://meditation.
- Twenty-eight day challenge Day/task progression stored in SharedPreferences and users/{uid}/challenges with varied task types.
- Fasting tracker Local-only fasting logs in SharedPreferences with scheduled reminder notifications.
-
Platform services 3 Notifications, analytics, settings.
- Notifications Local notifications and FCM with preference storage; some payloads map to placeholder Superwall placements.
- Analytics and telemetry Mixpanel primary product analytics, AppsFlyer attribution, Crashlytics error reporting, Firebase Analytics purchase events.
- User profile and settings Profile editing, notification preferences, and RevenueCat Customer Center for subscription management.
Provenance & freshness
This guide is a generated snapshot of the repository at the source commit shown below. Later repository changes may not be reflected until VibeKB is updated and regenerated.
Static snapshot of Stoppr at the commit above under the VibeKB 0.2.0 consolidated layout (installer 0.2.0, template 2.0.0). Does not update itself. Re-verify against source before changing claims.
- Generation mode
- Static snapshot
- Source repository
- https://github.com/cubixmeow-commits/VibeKB-stoppr
- Source branch
- main
- Source commit analyzed
2edc099 (2edc09927b646c833769ab8b4bd6bc00b37882c3)- Analysis generated
- 2026-07-23 18:28 UTC
- Verification scope
- Clean VibeKB 0.2.0 re-analysis of Stoppr from source under lib/, pubspec.yaml, firestore.rules, and platform manifests. Claims are verified-from-source or inferred-from-source only; no store/sandbox purchase or Superwall dashboard campaigns were executed. Superwall INSERT_YOUR_* placements, widget app-group placeholder, Google OAuth placeholder fallbacks, disabled QUOTA_SYSTEM_ENABLED flags, and .env vs .env.local mismatch remain present in source.
- Last verified against source
- 2026-07-23
- Generated by VibeKB commit
2edc099(cursor/regenerate-stoppr-vibekb-0-2-0-22f5)- Updates automatically
- No — regenerate to refresh
What this software does
A Flutter mobile app that helps users reduce sugar consumption through onboarding, habit tracking, education, community, and subscription-gated wellness tools.
A large Flutter client with full onboarding, auth, subscription gating, home wellness loops, community, nutrition AI tools, widgets, and several high-severity configuration placeholders.
How to think about it
A Flutter client where Firebase holds user data, RevenueCat/Superwall gate premium, and local preferences plus widgets keep daily habits fast.
Active warnings
Current AI work
Current AI work completed