01 / Communication & shared spaces
Followell Chat
Rooms for conversations, shared information, and voice and video calls.
My contribution — Backend, web and native client software, real-time protocols, and deployment tooling. Product design by Walt.
- Elixir / Phoenix
- PostgreSQL / Ecto
- LiveView
- SwiftUI
- Kotlin / Compose
- WebRTC / coturn
Keep workspace boundaries in the backend
Room-channel joins resolve a room through both the authenticated workspace and user. Durable events drive client catch-up; live room notifications prompt a sync. This keeps transient socket delivery separate from persisted history, at the cost of maintaining event cursors and reconciliation in the clients.
Repair signaling without discarding healthy media
The native call code separates WebSocket signaling from the WebRTC peer connection. A replacement socket can rejoin while preserving connected media; generation checks reject stale asynchronous work. That adds lifecycle complexity, but avoids making every signaling interruption a full media teardown.

Simulator capture, October 26, 2026.
