⚠️ orbt is still being built and is in very early stages -- nothing really works yet.
orbt is a collection of programs that work together to allow you to control a virtual machine1 through your browser, enabling you to browse the internet and consume media with friends. It's kind of like Prime Video's Watch Party or DisneyPlus' GroupWatch, but you can visit any website.
orbt is composed of four programs/services:
- orbt/api:
- graphql api written in rust
- handles user data2, sessions, etc
- handles server->client state updates via ws (gql subscriptions), i.e: chat, etc
- orbt/web:
- web frontend, typescript, built in next.js 13 (appDir beta3, React 18 ✅)
- Check out the Figma
- orbt/cli:
- "gateway" to running api, web and vm together
- interactive instance creation process, setting room name, password, etc
- packages web and api into a single executable
orbt/vm:- boots up virtual display, browser, audio supporting software
- captures virtual display via ffmpeg to relay over WebRTC
- process kbm actions over WS connection from remote user in control
1 it's not actually a virtual machine, but a light-weight container running xvfb, chromium, ffmpeg, orbt/vm and some other utils
2 user data is short lived, tied to a single temporary orbt instance, nothing persists. this may change in the future, but the goal of the project right now is for it to be something that is self-hosted, spun up on demand, not requiring users to register or login, etc
3 we're testing out next.js' appDir beta, so a lot of the std FE ecosystem tools aren't compatible yet or require patching, we may find ourselves blocked by something upstream.