Screens, routes, purpose, and main widgets used by the Flutter client.
| Screen | Route | Purpose | Main providers/services/widgets |
| — | — | — | — |
| ForYouScreen | /for-you | Main vertical personalized feed. | forYouProvider, feedPersonalizationSnapshotProvider, feedTuningProvider, savedItemIdsProvider, LikeService, ContentCard. |
| SearchScreen | /search | Unified search for content, fact checks, and saved items. | searchQueryProvider, searchScopeProvider, searchResultsProvider, recentSearchesProvider, ContentCard. |
| FactCheckScreen | /verify | Claim input, daily limit handling, starter claims, fact-check results. | factCheckProvider, starterFactCheckClaimsProvider, currentUserTierProvider, FactResultCard. |
| FriendsScreen | /friends | Find users, view friends, handle requests and shares. | userSearchResultsProvider, friendsListProvider, requestsProvider, receivedSharesProvider, sharePreviewProvider. |
| ProfileScreen | /profile | Guest CTA or signed-in profile dashboard. | authProvider, profileUserProvider, currentUserTierProvider, savedItemIdsProvider, GuestProfileView, AuthenticatedProfileView. |
| SavedContentScreen | /profile/saved | Saved tab shortcut. | Wraps ArchiveScreen(initialIndex: 1). |
| ArticleDetailScreen | /article/:contentId | Full article reading view. | Requires ContentItem in GoRouterState.extra; uses save state, share sheet, note editor, fact-check shortcuts. |
The legacy /learn route redirects to /friends.
| Screen | Route type | Purpose | Main providers/services/widgets |
| — | — | — | — |
| OnboardingScreen | Navigator.push fullscreen dialog from MainShell | First-run and retune interest selection. | onboardingProvider, localFeedPreferencesProvider, profileUserProvider, PonderGradientButton. |
| EditProfileScreen | Navigator.push from profile | Edit username, names, date of birth, interests, notifications, and profile image. | profileServiceProvider, currentUserProvider, profileUserProvider, file_picker, image_picker. |
| ArchiveScreen | Navigator.push from profile | Liked, saved, and fact-check archive tabs. | LikeService, savedItemsProvider, factCheckRepositoryProvider, PonderDataService, NoteEditorSheet. |
| ThreadScreen | Navigator.push from friends | 1:1 chat thread with text and inline article messages. | threadMessagesProvider, threadParticipantProvider, threadArticleProvider, FriendsService. |
| _FactCheckDetailScreen | Navigator.push from archive | Detailed archived fact-check result. | FactResultCard. |
MainShell wraps tab routes with a BottomNavigationBar:
/for-you/verify/friends/profileTapping the current For You tab increments forYouRefreshSignalProvider, resets the feed to the first item, and refreshes.
ArticleDetailScreen includes:
CachedNetworkImage.url_launcher.FactCheckScreen.saved_items.notes.factChecksProvider.FriendsScreen uses three tabs:
Find: debounced user search and friend-request creation.Friends: accepted friends and thread opening.Activity: pending requests and received shares.ThreadScreen polls messages every two seconds via threadMessagesProvider, sends encrypted text through FriendsService.postMessage, and shows typed article messages as inline article preview cards.