🐻 Watchbear: The sweet way to watch together
Watchbear lets you watch any video together, in sync. Start a room, share the code, and everyone's playback stays on the same frame, with chat and reactions in a side panel right next to the video.
Synced playback: play, pause and seek stay in step for everyone in the room.
Join with a code: no account; friends drop in within seconds.
Side-panel chat: live messages and quick reactions next to the video.
Live position: the panel shows the current second of the active tab's video.
Requires Node >= 20 and pnpm >= 10.
pnpm installExtension
pnpm dev:ext # Vite dev server with HMR (outputs apps/extension/dist)
pnpm build:ext # production buildThen open chrome://extensions, enable Developer mode, and Load unpacked →
apps/extension/dist.
Server
pnpm dev:server # nest start --watch
pnpm build:serverSelf-hosting
Watchbear is self-hostable. Run the server wherever you like (the
Server.Dockerfile and server.compose.yaml
are ready to go), then point the extension at it: open the popup, click the server
row, Change, and enter your address (e.g. https://watch.example.com). It pings
the address to confirm a Watchbear server is there before switching.
The extension origin (chrome-extension://…) is allowed by default, so no CORS
config is needed for the client. To also allow a web origin, set CORS_ORIGINS
(comma-separated) on the server.
Whole workspace
pnpm build # build every app
pnpm typecheck # type-check every appMIT LICENSE - Halit Sever
