All work

Case study · Streaming and social viewing

Watch Party.

A real-time browser extension that lets users watch movies and shows together with synchronized playback and live chat.

What we built
Browser extension with real-time backend
Stack
React, Manifest V3, Target platform: Netflix (MVP), Node.js + Express
Services
Browser extensionReal-time backendUX/UI design
Laptop on dark rock showing a profile picker with a side panel for starting a shared viewing party

About the project

What is Watch Party?

This project focused on building a real-time Watch Party Chrome extension that allows users to watch Netflix movies and shows together with synchronized playback and live chat. Netflix does not provide native support for group watching with synchronization and communication. The goal was to create a lightweight, reliable extension that enables friends to join a shared viewing session instantly, stay perfectly in sync, and interact socially, without requiring user accounts or complex setup. The solution combines a Chrome extension with a real-time backend system to manage playback synchronization, party control, and messaging for up to five users per session.

Solution

A host-controlled watch party system was developed using a Chrome extension and real-time communication architecture. The host acts as the single source of truth, ensuring all playback events propagate instantly to connected users. The extension integrates directly with Netflix's player, providing synchronized playback, party management, and real-time chat, all within the browser.

Conclusion

The extension successfully delivers a synchronized, social Netflix viewing experience through a clean, real-time architecture. The project demonstrates how browser extensions can transform individual content consumption into a shared experience, enhancing existing platforms without disrupting the native user experience.

The problem

What was slowing them down.

  1. 01

    Playback desynchronization

    Playback desynchronization between users.

  2. 02

    No centralized control

    No centralized control for play, pause, or seek actions.

  3. 03

    Lack of built-in chat

    Lack of built-in chat for shared viewing.

  4. 04

    Poor handling of disconnects

    Poor handling of disconnects during sessions.

  5. 05

    Late joiners

    Late joiners cannot align with ongoing playback. These challenges result in a broken and frustrating shared viewing experience.

The solution

What we built.

Synchronized Playback

Host-controlled play, pause, and seek.

  • Non-host playback attempts automatically revert
  • Periodic resync to prevent playback drift

Host Controls

Start and end party sessions.

  • Pause or resume playback for all users
  • Force resync to align all participants

Party Lobby

Pre-play lobby with user list.

  • "Ready" status for guests
  • Host-only start control
  • Built-in chat before playback begins

Party Management

Shareable party link for easy joining.

  • No authentication required
  • Display names for participants
  • Maximum of 5 users per party

Join-Late Synchronization

New users automatically sync to the current playback time.

  • Seamless entry without restarting content

Connection Handling

Automatic resync on user reconnection.

  • Temporary host disconnect pauses playback
  • Party ends cleanly if host leaves

In-Party Chat

Real-time text chat during playback.

  • Enables social interaction without leaving Netflix

Results

What changed.

Viewers

  • Perfect Playback Sync

    Reliable real-time synchronization.

  • Improved Engagement

    Chat and shared viewing increased interaction.

  • Low Barrier to Entry

    No login or onboarding friction.

  • Robust Handling

    Disconnects and late joins managed gracefully.

  • Scalable MVP

    Architecture ready for future platform expansion.

Key challenges

The hard parts, and how we solved them.

  • Playback drift

    Periodic resync and host authority model.

  • Late joins

    Automatic timestamp synchronization.

  • Conflicting controls

    Host-only playback permissions.

  • Disconnect handling

    Pause, resync, and clear user states.

  • Player integration

    Reliable Netflix DOM event handling.

Tech stack

What it runs on.

Extension Development
ReactManifest V3Target platform: Netflix (MVP)
Backend Development
Node.js + ExpressMongoDBWebSockets (real-time communication)

Process

How we got there.

  1. 01Research & Discovery

    Studied existing watch-party tools

  2. 02UX/UI Design

    Designed a minimal overlay aligned with Netflix's interface

  3. 03Extension Development

    Implemented player detection and playback controls

  4. 04Real-Time Backend

    Built WebSocket-based room and sync system

  5. 05Testing & Optimization

    Validated multi-user sync, reconnections, and drift prevention

Building something like Watch Party?