https://github.com/halitsever/watchbear
🐻 Watch together in sync; Free Chrome extension for watch parties. Synced video playback, live chat & reactions, no account. Watch movies & YouTube with friends.
https://github.com/halitsever/watchbear
browser-extension chrome-extension crxjs manifest-v3 nestjs react realtime self-hosted sidepanel socket-io synchronized-video tailwindcss teleparty teleparty-alternative typescript video-sync watch-party watch-together watchparty websocket
Last synced: about 8 hours ago
JSON representation
🐻 Watch together in sync; Free Chrome extension for watch parties. Synced video playback, live chat & reactions, no account. Watch movies & YouTube with friends.
- Host: GitHub
- URL: https://github.com/halitsever/watchbear
- Owner: halitsever
- License: mit
- Created: 2026-06-13T03:08:00.000Z (16 days ago)
- Default Branch: main
- Last Pushed: 2026-06-20T14:51:22.000Z (8 days ago)
- Last Synced: 2026-06-20T16:25:41.679Z (8 days ago)
- Topics: browser-extension, chrome-extension, crxjs, manifest-v3, nestjs, react, realtime, self-hosted, sidepanel, socket-io, synchronized-video, tailwindcss, teleparty, teleparty-alternative, typescript, video-sync, watch-party, watch-together, watchparty, websocket
- Language: HTML
- Homepage: http://watchbear.deepfeld.com/
- Size: 1.16 MB
- Stars: 26
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README


🐻 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.
```bash
pnpm install
```
**Extension**
```bash
pnpm dev:ext
pnpm build:ext
```
Then open `chrome://extensions`, enable Developer mode, and **Load unpacked** →
`apps/extension/dist`.
**Server**
```bash
pnpm dev:server
pnpm build:server
```
**Self-hosting**
Watchbear is self-hostable. Run the server wherever you like (the
[`Server.Dockerfile`](./Server.Dockerfile) and [`server.compose.yaml`](./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**
```bash
pnpm build # build every app
pnpm typecheck # type-check every app
```
MIT LICENSE - Halit Sever
