Social Distancing means friends can't get together and binge Netflix like they used to. Current tools like NetflixParty, Rabbit, etc work very unreliably and people often give up. None of these tools allow for video calls while watching netflix together either - and I have personally seen the need for a tool like this as I have tried to watch Netflix with friends.
What it does
StreamTogether allows users to watch Netflix in sync with each other while seeing each other's faces on video call. It is a chrome extension that adds a sidebar to your Netflix player's window and shows the video call streams in that sidebar.
How I built it
Started by learning all about WebRTC. The biggest difference between this and all other plugin is that all the communication happens completely Peer-to-peer! This app is architected completely serverlessly - taking away the headache of vertical scaling by throwing in too many servers.
It uses the WebRTC media channels (video & audio streams) and data channels (play/pause data). It uses firestore to perform the initial WebRTC signaling.
Challenges I ran into
It was my first time building a Chrome Extension - they have really weird architecture decisions that need to be made. And all that sandboxing leads to more complexity and interesting runtime-related challenges.
What I learned
Picked up a lot of WebRTC knowledge and skills. Distributed, decentralized, peer-to-peer communication is the future!
What's next for StreamTogether
Cleaning up some code and making the UI more robust - followed by a launch on the chrome extension store!