{"id":27381970,"url":"https://github.com/rajin-khan/tessro","last_synced_at":"2025-04-13T15:16:53.189Z","repository":{"id":285422198,"uuid":"958089925","full_name":"rajin-khan/Tessro","owner":"rajin-khan","description":"Real-time P2P video streaming and syncing platform with your local files ( + chat).","archived":false,"fork":false,"pushed_at":"2025-04-11T17:47:53.000Z","size":25164,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T15:16:30.026Z","etag":null,"topics":["group-watch","peer-to-peer","react","realtime","video-sharing","video-sync","webrtc","websockets"],"latest_commit_sha":null,"homepage":"https://tessro.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rajin-khan.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":"2025-03-31T16:17:19.000Z","updated_at":"2025-04-11T17:47:56.000Z","dependencies_parsed_at":"2025-03-31T17:31:11.494Z","dependency_job_id":"93c87e51-7dbe-4d31-bbd8-c9232d24565f","html_url":"https://github.com/rajin-khan/Tessro","commit_stats":null,"previous_names":["rajin-khan/tessro"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajin-khan%2FTessro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajin-khan%2FTessro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajin-khan%2FTessro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajin-khan%2FTessro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rajin-khan","download_url":"https://codeload.github.com/rajin-khan/Tessro/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248732485,"owners_count":21152852,"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":["group-watch","peer-to-peer","react","realtime","video-sharing","video-sync","webrtc","websockets"],"created_at":"2025-04-13T15:16:51.966Z","updated_at":"2025-04-13T15:16:53.183Z","avatar_url":"https://github.com/rajin-khan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./documentation/banneroptimized.jpeg\" alt=\"Tessro Banner\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eTessro\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\u003cstrong\u003eReal-time. Real fast. Fully private.\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/status-v2.0.0 running-green\" alt=\"Status Badge\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/built_with-React-blue?logo=react\" alt=\"React Badge\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/backend-Node.js-yellow?logo=node.js\" alt=\"Node.js Badge\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/deployment-Railway-black?logo=railway\" alt=\"Railway Badge\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/license-MIT-lightgrey\" alt=\"MIT License Badge\"\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n---\n\n### **💻 V2 Live Now! →** [tessro.com](https://tessro.com/)\n\n\n\nhttps://github.com/user-attachments/assets/df068085-cc06-45f4-aebe-c4bfac24f215\n\n\n\n---\n\n## 🎥 What is Tessro?\n\n**Tessro** is a blazing-fast real-time synchronized video playback platform that just got even better. Whether you're across the world or across the room, Tessro brings friends and teams together with seamless, **fully private video sessions**.\n\n🚀 You can now choose between two modes:\n\n- 🌀 **Sync Mode** — Everyone picks the same local video file, and Tessro syncs playback across devices.\n- 📡 **Stream Mode** — The host selects a file, and others watch the host’s stream in real-time, thanks to **WebRTC**.\n\n**All with:**\n- ❌ No uploads  \n- 🔐 No accounts  \n- 👀 No tracking  \n- 🔄 Real-time sync  \n- 💬 Live chat  \n\n---\n\n## 💡 The Vision\n\n\u003e *Bring back the joy of watching together — personal, private, and perfectly in sync.*\n\nTessro is ideal for:\n- 🎞️ Movie nights\n- 🎓 Online training\n- 📽️ Remote film reviews\n- 🤝 Connecting with loved ones\n\n---\n\n## ✅ Core Features (v2.0)\n\n| Feature                          | Status | Notes                                                             |\n|----------------------------------|--------|--------------------------------------------------------------------|\n| 🔁 Sync Mode                     | ✅     | File-based synchronization with hash matching                     |\n| 📡 Stream Mode (WebRTC)          | ✅     | Host streams video to all guests via peer-to-peer                 |\n| 🔐 Secure Sessions               | ✅     | Password-protected, nickname-based login                          |\n| 💬 Live Chat                     | ✅     | Scrollable, with sender info and timestamps                       |\n| 👥 Participant List              | ✅     | Real-time with host/you indicators                                |\n| 🧠 Smart Cleanup                 | ✅     | Host leaving ends session, guests gracefully exit                 |\n| 🛡️ Private, Peer-to-Peer        | ✅     | WebRTC ensures direct connections — **no centralized relaying**  |\n| 📱 Mobile-Friendly               | ✅     | Drawer-based mobile layout with responsive design                 |\n\n---\n\n---\n\n## 🧐 How It Works\n\n1. 🔧 **Create Session** — As a host, generate a session and choose a file.\n2. 🔑 **Invite Others** — Friends join with your session ID and password.\n3. 🌀 **Pick Your Mode** — Sync files or just let the host stream.\n4. ⏯️ **Watch Together** — Tessro handles syncing, controls, and chat!\n\n---\n\n## 🔒 Privacy First\n\nTessro:\n- Stores **no user data**\n- Uses **no uploads**\n- Supports **end-to-end WebRTC streaming**\n- Has **no trackers, ads, or analytics**\n\nComing soon: self-hosted TURN fallback for even better firewall/NAT support.\n\n---\n\n## 🧱 Tech Stack\n\n### Frontend\n- ⚛️ **React** + **Vite**\n- 🎨 **Tailwind CSS**\n- 📺 **React Player**\n- ⚡ **Socket.IO Client**\n\n### Backend\n- 🖥 **Node.js + Express**\n- 📡 **Socket.IO** for sync/chat\n- 🚉 **Railway** deployment (soon migrating to scalable cloud)\n\n### WebRTC\n- 🔄 **Peer-to-Peer media streaming**\n- 🌍 STUN/TURN-ready with fallback handling\n- 🔐 Future TURN servers with full privacy (currently using free 24h servers on Twilio)\n\n---\n\n## 🔮 Roadmap\n\n| Feature                          | Status      |\n|----------------------------------|-------------|\n| ✅ Real-time Sync Mode           | Completed   |\n| ✅ WebRTC Peer Streaming         | Completed   |\n| ⏳ Voice Chat                    | In Progress |\n| ⏳ Emoji Reactions               | In Progress |\n| ⏳ Subtitle Syncing              | Planning    |\n| ⏳ Self-hosted TURN server       | Planning    |\n| ⏳ Native Mobile App             | Planning    |\n| ⏳ Offline LAN-only Mode         | Planning    |\n| ⏳ Persistent Accounts (Optional) | Not in Vision, but may integrate on request    |\n\n---\n\n## **👨‍💻 Dev Team**\n\nJust me, actually.\n\n| Name                      | Institution             | ID | GitHub | Followers |\n|---------------------------|-------------------------|--  |--------|------|\n| **Rajin Khan**            | North South University | 2212708042 | [![Rajin's GitHub](https://img.shields.io/badge/-rajin--khan-181717?style=for-the-badge\u0026logo=github\u0026logoColor=white)](https://github.com/rajin-khan) | ![Followers](https://img.shields.io/github/followers/rajin-khan?label=Follow\u0026style=social) |\n\n---\n\n### ⭐ **Star this repo if you want more cool stuff like this!**\n\n## 🚀 Want to Contribute?\n\nTessro is open-source, and minimalist. PRs are welcome!\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajin-khan%2Ftessro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajin-khan%2Ftessro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajin-khan%2Ftessro/lists"}