Fireplace is an easy to use media playback service that lets you upload video content and create watchparties which can be enjoyed with friends and family anywhere around the world!

It's complete with user authentication, real time playback and voice chat. All you need to do is invite your friends and have a good time at Fireplace :)

The process

The motivation for creating Fireplace came from wanting to watch videos with my friends in a seamless manner. The pandemic made it even more necessary to find new ways to connect with friends and relatives. Dolby provided a great opportunity in making this possible.

From the get go I wanted to use websocket to sync the video streams, but implementing it was a challenge on its own. Integrating voice chat with spatial audio took some time but in the end added a whole new interactive dimension.

How it works

  1. When a user signs up with an email and password, he/she is authenticated using Supabase's authentication service.
  2. All uploaded videos are stored in AWS S3.
  3. Playback controls are synced in real time with the help of a websocket server.
  4. Watchparty details are stored in a Redis database for fast access.
  5. Voice chat is enabled using Dolby's APIs. The voice chat features spatial audio, allowing multiple participants to be heard clearly even when speaking at the same time.

Vercel has been used to host the next.js app and AWS to deploy the websocket server.

What's next?

Build the World hackathon has been fun and I'm excited to submit this version of Fireplace. However, I have plans to further improve the website.

  1. Fireplace currently supports 5 participants at a watchparty. This can be increased in the future.
  2. Add support for Safari browser.
  3. Improve the custom video player.
  4. Improve website performance.


Fireplace now requires an email and password combination for signing in. Previously, magic links were used. Users who signed up using the magic link feature will need to set a new password by clicking on "Forgot password" in the login page.

Built With

Share this project: