Chattr is a full-featured real-time chat app built with Flutter & Supabase, engineered with production-level architecture and a strong focus on performance and user experience.
What makes it non-trivial:
Optimistic UI — Messages appear instantly before server confirmation. A tempId system handles race conditions between the Realtime stream and the server response, merging state without duplicates or flickers.
Context-Aware Push Notifications — A secure, serverless notification pipeline driven by Supabase Database Webhooks and Deno Edge Functions routing through Firebase Cloud Messaging (FCM). It features deep-link routing via GoRouter across all app states (terminated, background, foreground) and smart active-chat suppression to prevent redundant heads-up pop-ups when the user is already engaged in the conversation.
Multi-layer data pipeline — Every chat loads through in-memory cache → Hive → Supabase, then subscribes to a live stream. Background refreshes happen silently with no loading indicators shown to the user.
Live presence system — Online/offline status syncs in real time with a 30-second heartbeat, pausing when the app backgrounds and resuming on foreground via WidgetsBindingObserver.
Voice message pipeline — Full lifecycle from recording to playback: permission check → temp file → background upload → URL sent → auto-downloaded and cached locally on first play. A singleton AudioPlayerManager ensures only one audio plays at a time across the whole app.
Smart local caching — Audio and image files are stored on-device after first load, with Hive tracking the local path per message so subsequent opens never hit the network.
Clean Architecture — Data, domain, and presentation fully separated per feature, with Either<Error, T> for explicit error handling and get_it for dependency injection throughout.