# ๐Ÿ• Watch Pizza Party > Watch Netflix & YouTube together with friends! Real-time sync, built-in chat, and free Pizza Server hosting. A Chrome Extension (Manifest V3) + Node.js backend for synchronized watch parties on Netflix and YouTube. Built for people who enjoy a slice of pizza and a shared moment with friends, staying close even when far away. [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Made with Love](https://img.shields.io/badge/Made%20with-%E2%9D%A4%EF%B8%8F-red.svg)](https://github.com/bethechangeitaly-creator/watch-pizza-party) ## โœจ Features - ๐ŸŽฌ **Perfect Synchronization** - Advanced sync engine keeps everyone watching at the same moment - ๐Ÿ’ฌ **Real-Time Chat** - Chat with your party while you watch - ๐Ÿ• **Free Pizza Server** - Hosted server at https://watch-pizza-party.onrender.com (no setup required!) - ๐Ÿ“บ **Netflix & YouTube Support** - Works on both major streaming platforms - ๐ŸŒ“ **Dark & Light Modes** - Switch between cinema mode and bright mode - ๐Ÿ”Š **Volume Boost** - Amplify quiet audio up to 600% - ๐Ÿ‘‘ **Host Controls** - Party host controls playback for everyone - ๐Ÿ”’ **Privacy-First** - Anonymous usernames, no accounts required, no data collection ## ๐Ÿš€ Quick Start ### For Users 1. Install the extension from Chrome Web Store *(coming soon)* 2. Open Netflix or YouTube 3. Click the Watch Pizza Party icon 4. Create or join a party with a room code 5. Enjoy watching together! ๐Ÿ• ### For Developers ```bash # Install dependencies npm install # Start the Pizza Server (dev mode) npm run dev:server # Build the Chrome extension npm run build:extension # Load extension in Chrome # 1. Go to chrome://extensions/ # 2. Enable "Developer mode" # 3. Click "Load unpacked" # 4. Select apps/extension/dist/ ``` ## ๐Ÿ› ๏ธ Tech Stack - **Monorepo**: npm workspaces (`@watch-party/*`) - **Extension**: React 18, Vite, Tailwind CSS, Socket.io-client - **Backend**: Express, Socket.io, in-memory rooms - **Shared**: Zod schemas for validation - **Deployment**: Render.com (Frankfurt, Germany) ## ๐Ÿ“– How It Works 1. **Host** creates a room and gets a room code 2. **Viewers** join using the room code 3. Extension syncs video playback state in real-time 4. Everyone watches together with perfect synchronization 5. Chat while you watch! ## ๐ŸŽฏ Use Cases - ๐Ÿ’‘ Long-distance relationships - ๐ŸŽ‰ Movie nights with friends - ๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ Watch parties with family - ๐Ÿข Remote team bonding - ๐Ÿ“š Study groups watching documentaries - ๐ŸŒ Language learning together ## ๐Ÿ”’ Privacy & Security - โœ… No account or login required - โœ… Anonymous pizza-themed usernames (e.g., "Red_Pepperoni") - โœ… All data deleted after session ends - โœ… Encrypted connections (HTTPS/WSS) - โœ… Open source and transparent - โœ… No analytics, no tracking, no ads See our [Privacy Policy](PRIVACY_POLICY.md) for details. ## ๐Ÿ“ฆ Project Structure ``` watch-pizza-party/ โ”œโ”€โ”€ apps/ โ”‚ โ”œโ”€โ”€ extension/ # Chrome Extension (React + Vite) โ”‚ โ”‚ โ”œโ”€โ”€ src/ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ background.ts # Service worker (~3000 lines) โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ content.ts # Content script (~1260 lines) โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ App.tsx # Main React app โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ components/ # React components โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ... โ”‚ โ”‚ โ””โ”€โ”€ dist/ # Build output โ”‚ โ””โ”€โ”€ server/ # Node.js Backend โ”‚ โ”œโ”€โ”€ src/ โ”‚ โ”‚ โ”œโ”€โ”€ index.ts # Express server โ”‚ โ”‚ โ”œโ”€โ”€ wsHandler.ts # WebSocket handler โ”‚ โ”‚ โ””โ”€โ”€ roomManager.ts # Room state management โ”‚ โ””โ”€โ”€ dist/ # Build output โ”œโ”€โ”€ packages/ โ”‚ โ””โ”€โ”€ shared/ # Shared TypeScript types & Zod schemas โ””โ”€โ”€ docker-compose.yml # Docker setup ``` ## ๐ŸŒ Production Deployment **Pizza Server**: https://watch-pizza-party.onrender.com - Auto-deploys from GitHub main branch - Hosted on Render.com (Frankfurt, Germany) - Free tier with automatic cold-start (~30 seconds) - In-memory room storage (rooms expire 5 minutes after last user leaves) ## ๐Ÿงช Development ```bash # Run server in dev mode (with hot reload) npm run dev:server # Build extension for production npm run build:extension # Run tests npm test # Build everything npm run build ``` ## ๐Ÿณ Docker ```bash # Start server with Docker docker-compose up -d # Server runs on http://localhost:3001 ``` ## ๐Ÿ“ Environment Variables ```bash # Server configuration PORT=3005 # Server port (default: 3005) NODE_ENV=production # Environment mode CORS_ORIGIN=* # CORS origin (default: *) ``` ## ๐Ÿค Contributing Contributions are welcome! Please feel free to submit a Pull Request. 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/AmazingFeature`) 3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to the branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request ## ๐Ÿ“„ License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ## โค๏ธ Support If you enjoy Watch Pizza Party, consider [donating a slice of pizza](https://www.paypal.com/donate/?hosted_button_id=BM6CSJULZ2RXG) to help keep the Pizza Server running! ## ๐Ÿ› Bug Reports & Feature Requests Found a bug? Have a feature idea? Open an issue on [GitHub Issues](https://github.com/bethechangeitaly-creator/watch-pizza-party/issues). ## ๐Ÿ“ง Contact **Developer**: Emanuel Caristi **GitHub**: [@bethechangeitaly-creator](https://github.com/bethechangeitaly-creator) --- **Built with โค๏ธ by Emanuel Caristi** *For people who enjoy a slice of pizza and a shared moment with friends, staying close even when far away.*