











Background
A platform that adapts to its community
Many communication platforms largely prescribe branding, structure and functionality, leaving communities with limited control over their own experience. Streambite was designed as a customisable alternative: real-time text, voice and screen sharing meet a modular interface that works on mobile and desktop and can evolve with the community.



Process
Challenge
Existing platforms offer limited customisation. Branding, structure and functionality are often predefined.
Solution
A modular platform with real-time text, voice and video channels whose components remain extensible.
Decision
Firebase handles real-time synchronisation while LiveKit handles WebRTC communication – two specialised systems with clearly separated responsibilities.
Outcome
A responsive community platform that works consistently across desktop and mobile and can adapt to different communities.
Real-time chat
Messages appear in real time through Firestore snapshots, including history, file uploads, emoji reactions, editing and deletion.

Voice and video
Voice and video channels use LiveKit WebRTC with TURN fallback, participant lists, device controls and screen sharing.

Servers and channels
Servers can contain any number of text and voice channels. Categories organise content and invitations control access.

Roles and permissions
Role-based access control defines at channel level who can read, write, speak, invite or manage.

Direct messages and friends
Private conversations are complemented by friend lists, online status, requests and blockable users.

Responsive design
The mobile-first interface uses slide-in sidebars, bottom sheets, iOS safe areas and touch-friendly interactions.

Architecture & engineering
Four decisions that support the system
Streambite uses a two-part real-time architecture: Firebase for chat and application data, and LiveKit for voice, video and screen sharing.
Channels and direct messages subscribe through Firestore onSnapshot. New messages appear without custom polling or a separate WebSocket server.
Learnings
What I learned from Streambite
The most important lessons from real-time communication, scaling and responsive design.
Direct peer-to-peer connections often fail in corporate networks. A TURN server is therefore not an optional extra but part of a dependable voice experience.
