https://github.com/megaconfidence/veet
A video call app
https://github.com/megaconfidence/veet
cloudflare-pages durable-objects
Last synced: 7 months ago
JSON representation
A video call app
- Host: GitHub
- URL: https://github.com/megaconfidence/veet
- Owner: megaconfidence
- Created: 2024-06-11T12:02:43.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-23T12:43:45.000Z (about 1 year ago)
- Last Synced: 2025-03-19T02:38:52.997Z (7 months ago)
- Topics: cloudflare-pages, durable-objects
- Language: JavaScript
- Homepage: https://veet.pages.dev/
- Size: 285 KB
- Stars: 52
- Watchers: 1
- Forks: 16
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Veet
A video call app built with [Cloudflare Pages](https://developers.cloudflare.com/pages/) and [Durable Objects](https://developers.cloudflare.com/durable-objects/).
## Video tutorials
- [Build a Video Call App with Durable Objects](https://www.youtube.com/playlist?list=PLzfTyn6__SjgC2ty1_BAl0RGgr2jKjngz)
## How It Works

Peer to peer connection for video and audio stream is delivered over [WebRTC](https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API). Peer discovery and signalling is powered by [WebSockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) over [Durable Objects](https://developers.cloudflare.com/durable-objects/api/websockets/).The diagram below explains how signalling over WebSocket happens on the frontend
# Local Setup
Clone the repo
```sh
git clone https://github.com/megaconfidence/veet.git
```
Install the client dependencies and start a local dev server
```sh
cd client
npm i
npm start #available on http://localhost:8788
```
Install the server dependencies and start a local dev server
```sh
cd server
npm i
npm start #available on ws://localhost:8787
```
To deploy either the client or server, run the following the corresponding directory
```sh
npm run deploy
```
Once the server is deployed, update `env.ws` in [`client/public/call/index.js`](https://github.com/megaconfidence/veet/blob/bb50f00158571b8ab2fa755f8e33476941ee393d/client/public/call/index.js#L12) to the deployed server address.