MultiPOV: from the need to the first web release
MultiPOV started with a need: watching the viewpoints of one session together, aligned in time. This article covers the first web release, launched in May 2026.
June 2026 update. This article remains the story of the V1 PWA shipped to production in May 2026. Since then, MultiPOV has evolved into a broader media system: a shared Rust core, WASM on the web, an Android app and live sync validated on device. I cover that next step in MultiPOV after the PWA: turning a web idea into a Rust/WASM and Android media system.
The need, in one sentence
N people share a session — a raid, a tabletop night, a co-op run — and each of them streams their own point of view on YouTube, Twitch or Kick. A spectator wants to watch every POV at once, aligned in time, the way a multi-camera control room would — except free, automatic and account-free.
It took a few minutes to identify that need and define the scope of the first version.
From need to scope
The technical constraint is synchronisation. Streams start at different times, drift, and pause independently. So the product reduces to one question: how do you align arbitrary streams with no shared timecode?
The shared session audio, captured by every participant, serves as the reference for cross-correlating the streams.
The technical core
- Client-side GCC-PHAT audio sync. The first version ran the generalised cross-correlation in TypeScript with a Web Worker and FFT.js to compute a per-POV offset. A shared
MasterClockthen drove every player; calibration was adjustable to the millisecond and the app re-synced automatically after each pause. Since June 2026, that core has been replaced by a shared Rust engine exposed as WASM on the web and reused in the native app. - Three platforms, one view. YouTube, Twitch and Kick — VOD and live — sit behind a unified abstraction, so platform differences are handled in one place.
- Account-free, shareable sessions. The whole session is encoded in the URL path (
/s/…), so a layout is portable in a comment or a DM. No sign-up, no database of users. - Configurable layouts. Auto grid, spotlight, theater and stacks; drag, resize, and save your own layouts.
Limiting application weight
Two choices reduce the work handled by MultiPOV:
- Front-end. Solid compiles to a tiny runtime with no virtual DOM, the service worker is hand-rolled with zero dependencies, and there's no account system and no client-side database. These choices limit the bundle size loaded on a phone.
- Media architecture. Videos and chats remain provided directly by the YouTube, Twitch and Kick players. MultiPOV focuses on orchestration, layout and synchronisation without duplicating streams already served by the platforms.
The release
The Solid + TypeScript PWA uses a custom service worker and a reproducible build. Automated checks verify parity between the French and English landing pages. The goal was to make the viewer usable on a phone as well as a 4K screen.
The result went live on watchmultipov.app in May 2026.
Try it — and follow along
If you run multi-POV sessions, the fastest way to judge it is to open one:
- watchmultipov.app — paste a few links, let the audio sync align them.
- Follow the build and the clips on X and TikTok.
If a POV won’t align or a layout causes problems, report it: that feedback guides the next fixes.