Ponder

Screens

Screens, routes, purpose, and main widgets used by the Flutter client.

Routed Screens

| 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. |

Shell Navigation

MainShell wraps tab routes with a BottomNavigationBar:

Tapping the current For You tab increments forYouRefreshSignalProvider, resets the feed to the first item, and refreshes.

Article Detail Components

ArticleDetailScreen includes:

Friends Components

FriendsScreen uses three tabs:

ThreadScreen polls messages every two seconds via threadMessagesProvider, sends encrypted text through FriendsService.postMessage, and shows typed article messages as inline article preview cards.