2023/Full-Stack/Completed
Meet & Greet
1:1 and group video/voice calling with WebRTC.
React Native calling product: online presence, dial-by-ID, 1:1 and group video/voice over WebRTC, with Socket.io signaling on Node.js designed for real mobile networks — not demo Wi-Fi.
- 1:1 and group calls
- Production WebRTC path
- Real-time signaling

The Problem
Real-time video and voice on mobile is easy to demo on good Wi-Fi and hard to ship: signaling, ICE, and group join/leave all have to survive flaky networks and backgrounded phones.
What I Built
Meet & Greet is a React Native calling product with:
- Online presence and dial-by-ID.
- 1:1 and group video/voice over WebRTC.
- Socket.io signaling through a Node.js backend for offer/answer, ICE candidates, and participant churn.
Case study visuals are UI recreations of the product flows (presence, dial, 1:1, group) — not original 2023 production captures — but they match the shipped architecture.
Major Features
- 1:1 calling — peer media path with production signaling.
- Group calls — join/leave coordination and renegotiation as the room changes.
- Presence + dial-by-ID — find who’s online and start a call without a contact book maze.
- Mobile-aware signaling — Socket.io reconnection for cellular networks.
Key Challenges
Group calls add signaling complexity 1:1 doesn’t have — join/leave, renegotiation, and keeping Socket.io state aligned with WebRTC across every client. That reliability outside a controlled demo was the core engineering problem.
Results
Meet & Greet shipped with production-oriented 1:1 and group calling on a real-time WebRTC + signaling stack.
Stack Decisions
WebRTC owns the media path (peers, ICE, STUN/TURN for nasty NATs). Socket.io was chosen for signaling for reconnection semantics that matter on mobile networks more than a bare WebSocket.
Screens

