Web Technologies

Radioteletype

05:00
Live project: radioteletype.net

Browser Radio
for private communication

Radioteletype connects two users through WebRTC with live audio, video, chat, screen sharing, and direct file transfer.

Purpose

Fast communication.
Minimal identity.

The goal is a stateless peer-to-peer communication experience: no accounts, no database, and no message history.

WebSockets introduces peers.

WebRTC
carries data.

Radioteletype uses both because they solve different problems: one coordinates the connection, the other moves real-time media and data between browsers.

Most important code

The backend assigns roles.
The frontend starts WebRTC.

The backend decides who creates the offer. The frontend receives that role through WebSocket signaling and starts the peer connection.

Connection flow

Simple connection flow

The backend helps two browsers find each other. After the handshake, the session moves into WebRTC for real-time communication.

Direct vs relay

STUN discovers.
TURN relays.

Direct Mode is preferred because media travels peer-to-peer. Relay Mode exists for networks where NAT or firewalls block that direct route.

VPS deployment

Self-hosted infrastructure
was part of
the work.

The project runs on a configured VPS using Nginx, PM2, HTTPS/WSS, and a coturn relay server for difficult networks.

coturn configuration

TLS-only TURN relay
for blocked networks.

coturn runs on the VPS as the fallback relay when two browsers cannot establish a direct peer-to-peer path.

X-FTP file transfer

Chunked transfer.
Browser Blob.

X-FTP uses a dedicated ordered WebRTC DataChannel. The receiver accepts first, then the file is streamed in 32 KB pieces with progress and speed feedback.

Runtime error . . . Runtime error . . . Runtime error

MISSION ACCOMPLISHED!

The project will be made open source after the exam, and will remain that way.

Thank you for your attention!