{"id":22031368,"url":"https://github.com/ed-asriyan/watch-together","last_synced_at":"2026-03-14T14:47:45.887Z","repository":{"id":223036679,"uuid":"758914904","full_name":"ed-asriyan/watch-together","owner":"ed-asriyan","description":"Synchronized video player for watching movies together https://watchtogether.online","archived":false,"fork":false,"pushed_at":"2025-03-03T01:52:33.000Z","size":6356,"stargazers_count":6,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-09T17:54:05.383Z","etag":null,"topics":["firebase","movie","movie-night","playback-sync","svelte","sync","syncplay","video","watchtogether"],"latest_commit_sha":null,"homepage":"https://watchtogether.online","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ed-asriyan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-17T13:02:21.000Z","updated_at":"2025-03-01T02:52:14.000Z","dependencies_parsed_at":"2024-02-23T06:25:42.141Z","dependency_job_id":"64a0663a-2197-49b7-9282-8699da8af453","html_url":"https://github.com/ed-asriyan/watch-together","commit_stats":null,"previous_names":["ed-asriyan/movie-together"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ed-asriyan%2Fwatch-together","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ed-asriyan%2Fwatch-together/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ed-asriyan%2Fwatch-together/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ed-asriyan%2Fwatch-together/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ed-asriyan","download_url":"https://codeload.github.com/ed-asriyan/watch-together/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244333022,"owners_count":20436123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["firebase","movie","movie-night","playback-sync","svelte","sync","syncplay","video","watchtogether"],"created_at":"2024-11-30T08:16:38.898Z","updated_at":"2026-03-14T14:47:45.881Z","avatar_url":"https://github.com/ed-asriyan.png","language":"Svelte","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Movie Together [![CD](https://github.com/ed-asriyan/watch-together/actions/workflows/CD.yml/badge.svg)](https://github.com/ed-asriyan/watch-together/actions/workflows/CD.yml)\nWeb application built on Svelte.js and Firebase for watching movies together on different devices.\n\n\u003ch3 align=\"center\"\u003e\n    \u003ca href=\"https://watchtogether.online\" target=\"_blank\"\u003e👉 watchtogether.online 👈\u003c/a\u003e\n\u003c/h3\u003e\n\nhttps://github.com/ed-asriyan/watch-together/assets/7848847/2d2799f1-cc79-4732-8657-74f78268b8c2\n\n# Setup\n## Init\n1. Setup Firebase project\n   1. Create Firebase Realtime database: https://console.firebase.google.com\n   2. Copy Firebase project cofiguration\n      1. Copy firebase config values to [.env](.env) file\n      2. Copy service account key to `FIREBASE_SERVICE_ACCOUNT_KEY` repository secret\n   3. Setup Firebase Realtime database rules:\n      ```json\n      {\n        \"rules\": {\n          \"room\": {\n            \"$room_id\": {\n              \".read\": true,\n              \".write\": true\n            }\n          },\n          \"$other\": {\n            \".read\": false,\n            \".write\": false\n          }\n        }\n      }\n      ```\n   4. Add domain where you're going to host the website to \"Authorized Domains\" section of \"Authentication\"\n2. *(optional)* Setup [Google Analytics](https://analytics.google.com) (should be created with Firebase)\n   1. Copy Google Analytics meashurement ID to [.env](.env) file\n3.  *(optional)* Setup [Sentry](https://sentry.io) account and create Svelte project\n   1. Copy Sentry DSN value to [.env](./env) file\n4. Create `ENV_FILE_CONTENT` repository variable and copy content of filled by you [.env](.env) file in it\n\n## Local development\n1. Install docker\n2. Install dependencies:\n   ```console\n   make dev_install\n   ```\n\nNow you can run the dev server locally:\n```console\nmake dev_serve\n```\n\nOr generate production bundle:\n```console\nmake prod_build_bundle\n```\n\n## Deployment\n### CD\nEach push to `master` triggers [CD.yml](./.github/workflows/CD.yml) pipeline that builds production bundle and published it on\nGitHub Pages. To make it work you must have\n\nGitHub repository environment variables:\n* `ENV_FILE_CONTENT` with content of filled [.env](./.env)\n\n### Auto clean up\nEvery 1 day of a month, teams last updated more than 31 days ago are deleted by\n[clean-db.yml](./.github/workflows//clean-db.yml) workflow. To make it work you must have:\n\nGitHub repository environment variables:\n* `ENV_FILE_CONTENT`\n\nGitHub repository secrets:\n* `FIREBASE_SERVICE_ACCOUNT_KEY`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fed-asriyan%2Fwatch-together","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fed-asriyan%2Fwatch-together","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fed-asriyan%2Fwatch-together/lists"}