Software / ProductLet's talk
Back to selected work
mobile product

Relay

Messaging looks simple until the network disappears.

View source code
Messaging
Real-time + offline-aware
Security
X25519 ECDH + AES-256-GCM
Architecture
Flutter BLoC + Firebase
Relay real-time messaging app interface
RelayFull screenshot

Relay is a real-time messaging application built with Flutter, BLoC, and Firebase. It combines Firestore streams, offline-aware state reconciliation, message delivery tracking, voice messaging, notifications, group conversations, and client-side cryptographic processing in one system.

Challenge

A messaging interface can update instantly while the systems underneath it are doing very different things. Messages may be waiting for a network connection, moving through delivery states, arriving from another device, recording or uploading media, or updating through several real-time streams at once. Relay had to keep those transitions predictable without making the interface feel complicated.

Approach

A strict Event → BLoC → State architecture coordinates Firestore streams, optimistic local updates, offline queues, delivery states, typing indicators, presence, media, and voice-note lifecycles. Direct-message security uses an X25519 Elliptic-Curve Diffie-Hellman key agreement layer with AES-256-GCM authenticated encryption, secure device-side key storage, fingerprints, and safety-number verification.

Outcome

A responsive messaging system with real-time conversations, Sending → Sent → Delivered → Read states, offline retry and reconciliation, push-to-talk voice notes, reactions, replies, group administration, notifications, encrypted local backups, media caching, and mobile and desktop layouts.

Core stack

  • Flutter
  • BLoC
  • Firebase
  • Firestore
  • Cryptography