01Open Source · EcWoC '26

FinalCast

Record · Render · Release

View Live
About the Project

An open-source, full-stack podcasting platform that records multi-participant video conversations in real-time via WebRTC and automatically produces a fully rendered, editor-ready MP4 using server-side FFmpeg processing. No manual editing required.

Key Features
01
🎞️

Magic Edit: One-Click Post-Production

After a podcast ends, the host clicks Magic Edit. The backend pipeline automatically edits and renders the entire podcast with custom templates and multi-cam layouts, eliminating the need for expensive video editors.

02
📡

WebRTC Mesh with Resilient Signaling

Real-time, low-latency video between up to 3 participants using WebRTC mesh topology. Custom signaling via Socket.IO handles SDP relay, ICE candidates, health checks, and automatic reconnection.

03
🔐

Production-Grade Auth with 2FA

Google OAuth 2.0 via Passport.js, JWT in HTTP-only cookies (XSS-resistant), CSRF protection, and optional TOTP two-factor auth with QR code enrollment.

04
☁️

Dual Cloud Storage with Progressive Upload

3-second WebM chunks stream to Cloudinary (CDN delivery) and AWS S3 (raw storage). Progressive uploads limit crash data-loss to just 3 seconds.

05
📺

Live Streaming to YouTube via RTMP

Dockerized Nginx RTMP module relays sessions to YouTube Live or Twitch in real-time, decoupled from recording so stream failures don't affect captures.

System Design

Architecture

React App

MediaRecorder · WebRTC · Socket.IO

Socket.IO Server

Signaling · Chat · Sessions

REST API

Auth · Sessions · Recordings

Recording Module

Upload → FFmpeg → Render

MongoDB Atlas

Sessions · Users · Metadata

Cloudinary + S3

Chunks · Final MP4

External Services

OAuth · Gemini AI · SMTP · RTMP

Data Flow

clientsocket (WebSocket)|clientapi (HTTP)|clientrecording (Chunks)|apimongo|recordingcloud|apiexternal
Tech Stack
React 18ViteTailwind CSSRedux ToolkitSocket.IOWebRTCNode.jsExpress 5MongoDBFFmpegCloudinaryAWS S3DockerNginx RTMPPassport.jsGoogle Gemini
Screenshots
Dashboard: Quick actions hub

Dashboard: Quick actions hub

Studios Canvas: Session management

Studios Canvas: Session management

Magic Editor: AI-powered post-production

Magic Editor: AI-powered post-production

Recording Studio: Live room

Recording Studio: Live room

Session Details: Metadata & participants

Session Details: Metadata & participants

Live Streaming: RTMP relay

Live Streaming: RTMP relay

My Role

Designed the full-stack architecture from scratch: client-server separation, real-time signaling layer, media processing pipeline, and cloud storage strategy

Built the complete WebRTC peer-to-peer signaling system with reconnection handling and connection health checks

Engineered the recording → chunk upload → FFmpeg merge → final render pipeline with Cloudinary/S3 dual-storage

Implemented Google OAuth 2.0 with JWT sessions, HTTP-only cookies, and optional TOTP 2FA

Set up Dockerized Nginx RTMP for live streaming relay to YouTube

All ProjectsNikunj Agarwal · 2026