Social discovery mobile app case study

WhichOneDiscover,Connect, Chat& Share Moments

A modern social app experience with nearby discovery, real-time chat, stories, media sharing, and smart privacy controls.

WhichOne app logo
Nearby

Approx. distance

2.4 km away

Nearby Discovery

A map experience built around privacy, not pressure.

WhichOne lets people discover nearby profiles, map stories, and shared social intent while keeping exact live location private and visibility under the user's control.

Everyone

Browse and be discovered by people nearby while Nearby Mode is on.

Friends only

Limit discovery to accepted connections while keeping the map useful.

Hidden

Turn off the map, remove location visibility, and pause nearby activity.

WhichOne app logo
Chat
Hey, coffee nearby?
Sounds good. Sending a place.
Shared 4 photos

Real-Time Chat

Fast conversations with rich media in the flow.

Requests turn into private chat rooms with messages, photos, videos, voice notes, delivery state, notifications, and encrypted message payloads designed for everyday social momentum.

Messaging

Realtime one-to-one chat with replies, reactions, unread counts, and delivery awareness.

Calls

Audio and video calling use WebRTC signaling with presence and call state built into the chat layer.

Stories & Moments

Temporary moments that make discovery feel alive.

Stories support photo and video sharing, viewers, replies, and map-based public moments. Free users get a focused daily story flow, while premium unlocks room for more expression.

Stories

Share photos or videos with progress-driven viewing and reply paths.

Map stories

Place public moments into the nearby experience with approximate location context.

Premium

Premium users can post beyond the free daily story limit.

Aarav

Map story

Moments that start conversations.

Reply to story

Story Studio features

Polished Creative Suite for ultimate expressions.

The WhichOne Studio gives users an advanced local workspace to customize temporary moments before publishing. Leverage interactive brush tools with custom neon glow options, re-time frame speeds, seek video clips via dynamic frame timeline buffers, scale canvas aspect ratios, and place smart widgets.

Neon Drawings Overlay

Supports multi-brush overlays on canvas. It converts drawing coordinate vectors on-device using a RepaintBoundary widget to render transparent PNGs for server-side overlay blend.

Aspect Ratio Recanvas

Provides custom bounding-box adjustments between standard 9:16 mobile story aspect, 1:1 post squares, and 4:5 vertical feeds with animating border paddings.

Trim & Retiming Buffer

Uses vt.VideoThumbnail frames local caching to extract 8 thumbnail strips, providing interactive segment scrub-editing and time-remap mapping (0.5x, 1x, 2x).

Stickers & Beauty Sliders

Includes geolocation distance meters, automatic time stamps, emojis, and facial beauty sliders mapping to bilateral smoothing ranges.

Studio
Frame 1
Click viewport to draw!
Bilateral Skin Blur0
Timeline Frames Scrubbing

Smart Camera

OriginalNight GlowNeon SparkBeauty GlowWide GroupVintage

Live Camera Features

Intelligent Camera Engine with automated ML decisions.

The client-side SmartFilterEngine dynamically scans camera frame data to auto-select shader presets. It samples the YUV Y-plane in O(1) time for low-light, and tracks ML landmarks to optimize features for selfie focus, gestures, group shots, or environmental objects.

SmartFilterEngine Telemetry
Live Console Logs

High-Quality Media Pipeline

Optimized Background Story Upload Pipeline.

The StoryUploadManager ensures uploads run seamlessly in the background. It implements concurrency constraints, uploads raw files and drawing overlays in parallel, listens for server-side transcode status updates via Firestore subscriptions, and cleanly triggers local push notifications.

Sequenced Queue Manager

Maintains a sequential queue in local storage, preventing simultaneous uploads. If the internet connection breaks, the queue freezes and safely caches local state.

Server-Side FFmpeg & Sharp Transcoder

A Firebase Cloud Function triggers on raw uploads. It enforces H.264 video compression at 15Mbps (premium vs 5Mbps standard), shifts metadata blocks for fast web play (`faststart`), overlays drawing layers, and resizes photos inside a 4K viewport.

Atomic Firestore Transaction & Geohash Neighborhood

Publishes updates within a single Firestore transaction to maintain database integrity. Map stories are offset by a fuzzy distance and indexed in a geohash grid to notify nearby users.

Upload Manager Sim

aarav_story_moment.mp4

18.4 MB | Video Upload

Idle
StoryUploadManager Pipeline Logs
Awaiting queue execution...

Premium & Monetization

A clear Plus tier for deeper social discovery.

The monetization layer is built around meaningful upgrades: unlimited stories, premium filters, more profile photos, premium badge treatment, and richer map styles.

Free

Start social

Core discovery, chat, stories, and standard media tools.

Plus

Unlock more

  • Unlimited stories
  • Premium creative filters
  • Up to 9 profile photos
  • Premium badge
  • Premium map styles
  • Better discovery controls

WhichOne Plus

Unlock the social layer.

Unlimited stories
Premium creative filters
Up to 9 profile photos
Premium badge

Stack

Realtime, scalable, secure.

Flutter
Firebase Auth
Firestore
Realtime DB
Storage
Cloud Functions

Security & Scale

Firebase-backed architecture with privacy-first controls.

WhichOne combines Flutter with Firebase services, Mapbox/OpenStreetMap tiles, RevenueCat subscriptions, FCM notifications, WebRTC calls, and encrypted chat media workflows.

Flutter
Firebase Auth
Firestore
Realtime DB
Storage
Cloud Functions
FCM
Mapbox
RevenueCat
WebRTC
E2EE
App Check
FFmpeg (Cloud)
Sharp (Cloud)

Want to build a social app like WhichOne?

Let's turn your product idea into a polished, scalable mobile experience with the right design system, backend, and launch path.

a² + b² = c²Pythagoras