For a limited time, use our exclusive coupon code KWINGSMEDIA at checkout and enjoy a special 10% discount on all of our products and services across the entire Kwings Media store
Kwings Media Logo
KWINGS MEDIA
Back to Projects
Real-Time Communication

Chaty

A peer-to-peer video and audio platform that runs directly between browsers over WebRTC. Meetings are multi-party calls with screen sharing, a shared whiteboard, chat and reactions; Live is one-to-many broadcasting over a single watch link, with comments and reactions coming back from the audience. Nothing is recorded and no media routes through a server.

Visit the live site
Loading live preview…

Live preview of chaty.kwingsmedia.com

Overview

Chaty started as a tool inside the Kwings Media site and was extracted into a standalone product at chaty.kwingsmedia.com. It has two modes sharing one signalling and ICE setup: Meetings, a full mesh where every participant connects to every other, and Live, a star topology where a broadcaster sends one stream per viewer.

There is no account and no media server. PeerJS handles signalling, a self-hosted coturn relay covers the networks that STUN alone cannot connect, and a stream or a room exists only while it is running.

The whole thing ships as a static bundle, so the deploy is an nginx container serving files behind the host reverse proxy — the interesting engineering is entirely on the client.

What it does

Meetings

Multi-party video and audio with screen sharing, a collaborative whiteboard, chat and emoji reactions. Joining is a room code — no sign-up, no install.

Live streaming

Broadcast camera or screen over one watch link. Viewers are receive-only, so watching never asks for camera or microphone permission, and their comments, reactions and likes are relayed back to the broadcaster.

Ghost Mode

A background-removal video effect applied on-device to the outgoing stream, with no upload and no server-side processing.

Installable and mobile-first

A PWA manifest makes it installable to the home screen, and the UI is built from 360px up with safe-area insets for notches and home indicators.

Engineering highlights

Nothing routes through us

Media travels browser to browser. PeerJS carries only signalling, and the only server-side component in a call is the TURN relay for networks that need one — which means no media server to scale and nothing persisted.

Star topology with an honest ceiling

The broadcaster uploads one copy of the stream per viewer, so the audience is capped rather than degraded: past the soft cap a new arrival gets a clear "stream is full". Lifting that ceiling means an SFU, which would end the peer-to-peer property.

Self-hosted coturn with signed credentials

TURN credentials must be signed server-side, so the static app fetches them from a same-origin endpoint proxied to the Kwings Media API — cross-origin fetches were being blocked and silently falling back to a public demo relay.

Static bundle, container deploy

A Vite build emitting a static bundle, bind-mounted into an nginx container behind the host reverse proxy, so a content-only redeploy needs no image build and no registry.