Let's Talk FREE

Free 1-click browser-to-browser video calling. Type a name, hit Start a new call, share the link. Audio + video flow directly between browsers over WebRTC — nothing touches my server. Inspired by sparsh-shah/video-calling-website (Node + Socket.io), rebuilt as a static app on SevinHub using the PeerJS broker so it runs on plain shared hosting at sevinhub.com/lets-talk.

Inspired · Open Source · MIT

📞 Why I built it

Sparsh Shah's original was a clean undergrad project showing how easy WebRTC video calling can be — but the signaling layer required a Node server with Socket.io running 24/7. That's not shared-hosting friendly. I wanted the same magic — open a link, talk to someone — but as a single drop of static files on SevinHub's cPanel.

The trick is replacing Socket.io with PeerJS, which provides a free public WebRTC signaling broker. PeerJS only handles the tiny initial handshake (ICE candidates, offer/answer). All the actual audio, video, screen sharing, and chat messages flow directly between your devices — your video never lands on my server. That makes the whole thing fast, private, and free to host.

Three steps, zero setup

No app to install, no account to create, no email to verify. Just a browser.

🎥

Step 1 · Start a new call

Type your display name and tap Start a new call. The browser asks for camera + mic permission and a unique room link is generated instantly.

🔗

Step 2 · Share the link

Copy the URL from the address bar (or tap the room pill in the call) and send it via WhatsApp, SMS, email — anyway you like.

💬

Step 3 · Talk face to face

When the other side opens the link, the call connects directly browser-to-browser. Toggle mic/camera, share your screen, chat — all live, all peer-to-peer.

Everything you'd expect — and nothing more

A short feature set, deliberately. Less to learn, fewer ways to mess up.

🎤

Mic toggle

Mute / unmute with one tap. Your status syncs to every tile so the room knows.

📷

Camera toggle

Hide your face when you need to. Your tile shows a clean avatar fallback.

🖥️

Screen share

One tap to share a tab, window, or full screen. Auto-reverts to camera when you stop.

💬

Live chat

DataChannel-based text chat — also peer-to-peer. Unread badge while it's closed.

🔗

One-tap invite

Tap the room pill or the link button to copy the invite to clipboard.

🌍

Up to 6 people

Mesh topology — every pair connects directly. Best ≤6 (browser limit).

📱

Mobile-first

Works on iPhone, Android, tablet, laptop. Big touch targets, responsive grid.

🛡️

No recording

I don't store, log, or proxy any media. Nothing to leak.

Original Node app vs. my static port

Upstream
sparsh-shah/video-calling-website
  • Node.js + Express + Socket.io
  • Signaling server has to run 24/7
  • Needs VPS / Heroku / Render
  • WebRTC P2P for media
  • ~2★ undergrad project
My port
Let's Talk on SevinHub
  • Static HTML + CSS + ~500 LoC of JS
  • Signaling via PeerJS public broker
  • Drops onto plain shared hosting (cPanel)
  • Same WebRTC P2P media path
  • Full SevinHub dark theme + mobile-first UI
Privacy

What I see vs. what I don't

I don't see
  • Your video or audio (it never reaches my server)
  • Your chat messages (they go DataChannel, P2P)
  • Your camera, mic, or screen contents
  • Any recording — I have nowhere to store it
I do see (standard web log)
  • The room page is loaded (URL hit on cPanel)
  • Your IP address, like any website
  • Approximate timing of when you opened it

PeerJS's free broker similarly logs the tiny handshake step on their side.

Open source — fork it, ship it

My port is MIT-licensed. Credit to Sparsh Shah for the original idea and signaling via PeerJS for keeping the broker free.

SevinOS