Omni is a real-time presence + control system where users can:
- 🖱️ See live cursors
- 👥 Join rooms
- 🎮 Control sessions (streamer/viewer system)
- ✍️ Collaborate on shared state (Yjs)
- ⚡ Experience ultra-low latency interactions (If the streamer scrolls, the 1,000+ viewers see the scroll happen in <100ms)
- Live cursor tracking across all users
- Real-time user count
- Click ripple effects
-
Instant room creation
-
Role system:
- 🎥 Streamer
- 🎮 Controller
- 👀 Viewer
-
Grant/revoke control dynamically
- Cursor movement (smoothed interpolation)
- Click animations
- Scroll synchronization
- Shared text editing (CRDTs via Yjs)
Frontend:
- React
- Custom UI
Backend:
- Node.js
- Express
- ws (WebSocket)
Realtime:
- WebSockets
- Yjs (CRDT engine)omni/
├── server/
│ └── index.js
├── client/
│ ├── Home.jsx
│ └── Room.jsx
└── README.mdgit clone https://github.com/davex-ai/omni.git
cd omninpm installnode server/index.jsnpm startClient → WebSocket → Server
↓
Mode: Global | Room
↓
Global → broadcastGlobal()
Room → broadcast(room)| Role | Power |
|---|---|
| 🎥 Streamer | Full control |
| 🎮 Controller | Temporary control |
| 👀 Viewer | Read-only |
x = current.x + (target.x - current.x) * 0.2broadcastGlobal()→ lobbybroadcast(room)→ isolated room
- WebSocket state transitions
- Global vs Room isolation
- Event leakage prevention
- Presence consistency
Figma cursor presence
- Twitch-style control
- Multiplayer web engine
Built by Dave and Uthman — future systems engineer ⚡
+ Core system: DONE
+ Rooms: DONE
+ Realtime sync: DONE If this project helped or inspired you:
- ⭐ Star the repo
- 🍴 Fork it
- 🧠 Build something insane with it
“This isn’t just a project. It’s a real-time systems engine.”
