Skip to content

Open-source video conferencing app built on dTelecom — decentralized WebRTC with Solana node discovery

Notifications You must be signed in to change notification settings

dTelecom/dtelecom-meet

Repository files navigation

dTelecom Meet

Open-source video conferencing app created 100% by AI agent using dTelecom — a decentralized WebRTC platform with Solana-based node discovery.

Think Google Meet, but decentralized and self-hostable.

Live Demo | Documentation | LLM Resources

Deploy to Vercel

Deploy with Vercel

You only need two environment variables:

Variable Description
API_KEY Your dTelecom API key from cloud.dtelecom.org
API_SECRET Your dTelecom API secret

Webhook URL and Solana network settings are configured automatically.

Features

  • Video & audio conferencing — camera, microphone, screen sharing
  • Pre-join preview — test your camera/mic before entering the room
  • Host controls — kick and mute participants
  • In-room chat — real-time text messaging via data channels
  • Live participant count — see how many people are in a room before joining
  • Webhook integration — SFU nodes push participant_joined / participant_left / room_finished events
  • Decentralized — no single point of failure, SFU nodes discovered via Solana registry

Tech Stack

Local Development

1. Get API keys

Sign up at cloud.dtelecom.org and grab your API Key and API Secret.

2. Clone and install

git clone https://github.com/dTelecom/dtelecom-meet.git
cd dtelecom-meet
npm install

3. Configure environment

cp .env.example .env.local

Edit .env.local:

API_KEY=<your-api-key>
API_SECRET=<your-api-secret>

4. Run

npm run dev

Open http://localhost:3000.

Webhooks locally

Webhooks enable live participant counts on the pre-join screen. On Vercel this works automatically. For local development, dTelecom SFU nodes can't reach localhost, so use cloudflared to create a tunnel:

brew install cloudflared
npm run tunnel

Set the printed URL as WEBHOOK_URL in .env.local and restart the dev server:

WEBHOOK_URL=https://random-words.trycloudflare.com/api/webhook

Project Structure

app/
  page.tsx                        # Home — enter room name and identity
  prejoin/page.tsx                # Camera/mic preview + participant count
  room/[roomName]/page.tsx        # The video conference
  api/
    join/route.ts                 # Create token + resolve nearest SFU node
    webhook/route.ts              # Receive events from SFU nodes
    room-count/route.ts           # GET participant count for a room
    create-room/route.ts          # Create room (host)
    kick/route.ts                 # Remove participant (host)
    mute/route.ts                 # Mute participant (host)
components/
  ConferenceRoom.tsx              # Grid layout + sidebar panels
  CustomControlBar.tsx            # Media controls + share/chat/participants toggles
  ParticipantListPanel.tsx        # Participant list with host actions
  ChatPanel.tsx                   # In-room chat
  ConnectionStateOverlay.tsx      # Reconnecting/disconnected overlay
lib/
  api.ts                          # Client-side fetch helpers
  types.ts                        # Shared types (Role, RoomMetadata)
  room-service.ts                 # Server-side RoomServiceClient
  participant-count.ts            # In-memory webhook counter

Documentation

License

MIT

About

Open-source video conferencing app built on dTelecom — decentralized WebRTC with Solana node discovery

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •