> ⚠️ **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 machine_1 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](../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):
- web frontend, typescript, built in next.js 13 (appDir beta3, React 18 ✅)
- [Check out the Figma](https://www.figma.com/file/nUauBElRMVAg2BTo88rS3v/orbt.tv-design?node-id=183%3A1387&t=TAx1P52458OxiLqN-1)
- [orbt/cli](../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](../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](../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](https://beta.nextjs.org/docs/getting-started), so a lot of the std FE ecosystem tools aren't compatible yet or require patching, we may find ourselves blocked by something upstream.