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 siteLive 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.
More projects
Logistics & Courier
ParcelNet
A full courier network — merchants, riders, branches and live tracking.
Multi-Tenant SaaS
WayBuddy
Travel guides launch a branded site on their own subdomain — no code.
Quotations & Invoicing
Invogen
Quotations, invoices and bills as pixel-faithful PDFs, numbered automatically.
