Discovery is the heart of Wakao – the place where new activities, people, and experiences show up first.
Why Discovery Is the Heart of Wakao
When you open Wakao, you land on Discovery. It’s not an accident. Discovery is where new activities appear, where categories come to life, and where your interests translate into real-world plans.
Unlike a generic infinite feed, the Discovery experience in Wakao is:
- Structured – by category, filters, and activity type
- Context-aware – tuned to devices, memory, and performance constraints
- Connected – to hubs, chats, bookmarks, and tickets
This post walks through how Discovery works from both a product and engineering perspective, based on the real code behind the screen.
Key Idea: “Smart, Not Just Endless”
Discovery in Wakao isn’t about scrolling forever. It’s about quickly surfacing the activities that actually fit your time, interests, and location – while staying fast on every device.
1. The Activity Grid: Enterprise Cards, Everywhere
The core of Discovery is a responsive grid of StandardActivityCard widgets. These cards power both single-column feeds on mobile and multi-column grids on web/desktop.
Under the hood, the Discovery code builds its layout using a responsive helper:
- On mobile or narrow screens: a vertical ListView of activity cards
- On wide web screens: a multi-column GridView with a split-screen detail view
Each card is wrapped in a RepaintBoundary and built via ListView.builder or GridView.builder, so only what’s visible on screen is actually built and painted. This matters when you’re scrolling through dozens of activities on an older phone.
Activities themselves are normalized to ensure both id and docId are set, which keeps navigation, bookmarking, and ticketing consistent across screens.
2. Smart Filters & Category Carousel
Discovery isn’t just “all activities in a list.” At the top of the screen, you’ll find a search bar, filter button, and a horizontal category carousel. Together they power a full filter system backed by a dedicated activityFilterProvider.
The filter dialog lets you refine by:
- Time (min and max date/time filters)
- Activity type (group, 1-on-1, online, etc.)
- Visibility (public, friends, invite-only)
- Categories (travel, fitness, food, learning, and more)
When you apply filters:
- The filter state is updated in Riverpod
- The Discovery feed is refreshed through a globalPaginatedActivitiesProvider
- The selected category is also synced with chat, so “Discovery category chats” can prioritize conversations related to what you’re browsing
This makes Discovery not only a browsing tool, but a routing layer for the rest of the app.
3. Search Bar That Actually Performs
The Discovery search bar is powered by a TextEditingController with debounced callbacks. The implementation pays attention to details like:
- Clearing the search with a single tap
- Styling with BackdropFilter and translucent backgrounds to match Wakao’s glassmorphism
- Debouncing text changes so the feed isn’t reloaded on every keystroke
In the analysis for the Discovery screen, the search implementation scored as “EXCELLENT” – controllers are created in initState, properly disposed in dispose, and never leak.
4. Split-Screen on Web: Browse & View at the Same Time
On wide screens (desktop and large tablets), Discovery turns into a split-screen layout:
- Left side: the Discovery list or grid (40–60% width)
- Right side: the currently selected ActivityDetailsScreen
When you tap an activity card on web, Wakao doesn’t force a full navigation away. Instead:
- The selected activity is stored in local state (
_selectedActivity,_selectedActivityId) - A detail panel opens on the right, showing full activity information
- You can close the detail panel with a single action and continue scrolling
This is controlled by responsive helpers that check whether the platform is web and whether the screen is wide enough for split-screen, giving you a productivity-focused desktop experience without sacrificing mobile simplicity.
5. Bookmarks & Saved Activities
Sometimes you don’t want to join right away – you just want to save an activity for later. Each Discovery card integrates directly with the bookmarking system:
- Tapping the bookmark icon triggers an optimistic update, updating a local
_bookmarkedActivitieslist - Then it writes to the user document in Firestore (
bookmarkedActivitiesfield) - On error, the UI gracefully reverts the optimistic change and shows a localized error message
This pattern keeps the interface feeling instant, even if the network is slow, while still guaranteeing that bookmarks are persisted reliably in the backend.
6. Performance & Memory: Engineered for Low-End Devices
Discovery is one of the heaviest screens in any social app – lots of images, lists, and user interactions. Wakao’s implementation has been carefully audited and tuned for memory usage, especially on iOS and low-RAM devices.
Highlights from the Discovery Screen Memory Management Analysis:
- Image cache management: Aggressive cache limits (5–50 images, 20–60MB, device-specific), clearing on init, tab switches, scroll, and dispose
- Stream subscription management: Activity streams are paused/resumed based on app lifecycle, and properly cancelled on dispose
- Timers & debouncing: Scroll debouncing with proper cancelation to avoid leaks
- Repaint boundaries: Activity cards, headers, and key elements wrapped in
RepaintBoundaryto avoid unnecessary repaints - Lazy loading:
ListView.builderandGridView.buildereverywhere, plus device-specificcacheExtentvalues - Query limits: Activity streams capped between 50–100 items depending on device capabilities
The net result was a memory score of 97/100 in internal audits – rare for such a visual, feed-heavy screen.
7. Global State & Cross-Screen Coordination
Discovery doesn’t live in isolation – it coordinates with other parts of the app:
- Tutorials: A
tutorialStateProvidercan highlight Discovery steps for new users - Chat: The selected Discovery category syncs with personal/global chat so relevant conversations can be promoted
- Main navigation: The main menu’s initial tab is wired so the app always brings you “home” to Discovery after onboarding or certain flows
- Activities: When you create a new activity, you can be navigated back to Discovery so it appears where users are already looking
This global coordination is handled via Riverpod providers, static flags for cross-navigation state (like initial load requests), and central navigation services, giving Discovery a first-class role in the overall app architecture.
8. Simple Fallback: Lightweight Discovery Widget
Alongside the main, highly optimized Discovery experience, the codebase also contains a simpler DiscoveryScreen widget: a scaffold with an AppBar, a Firestore stream of public activities, and a plain ListView of cards.
This variant is intentionally minimalist – ideal for rapid testing, demos, or fallback environments where the full enterprise Discovery experience isn’t necessary. It still:
- Streams public activities from Firestore
- Formats locations via a
LocationFormatterutility - Shows hosts, dates, and images with basic error handling
It’s a reminder that behind the polished Discovery feed sits a clear, understandable data model – the complexity is in the UX and optimization, not in hidden magic.
Try Discovery on Your Device
Whether you’re on a low-end Android phone or a 4K desktop monitor, the Discovery experience adapts – changing layouts, cache sizes, and limits to keep things responsive.
Open Wakao and Explore DiscoveryConclusion: Discovery That Respects Your Time (and Your Phone)
Discovery in Wakao isn’t just an endless scroll. It’s a carefully engineered experience that:
- Surfaces the most relevant activities with filters and categories
- Connects to chats, hubs, and tickets so the rest of the app follows your intent
- Runs smoothly on low-end devices through aggressive optimization
- Scales to web and desktop with split-screen layouts and responsive grids
If you want an app where “discovering what to do” actually leads to doing it, Discovery is where the journey starts. Behind the scenes, it’s one of the most carefully tuned parts of Wakao’s architecture.
Open the app, tweak a few filters, and see how fast you can go from “I’m bored” to “I have a plan.”