MultiPOV : du besoin cerné à une app optimisée en production en mai 2026
MultiPOV : du besoin cerné à une app optimisée en production en mai 2026
Certains projets partent d'une liste de fonctionnalités. Celui-ci est parti d'un besoin unique, cerné précisément — et tout l'enjeu était d'aller de ce besoin à une application parfaitement optimisée en production, sans détour.
Mise à jour juin 2026. Cet article reste le récit de la V1 PWA livrée en production en mai 2026. Depuis, MultiPOV a évolué vers un système média plus large : cœur Rust commun, exposition WASM côté web, app Android et validation live sur appareil. J'en détaille la suite dans MultiPOV après la PWA : transformer une idée web en système média Rust/WASM + Android.
Le besoin, en une phrase
N personnes partagent une session — un raid, une soirée jeu de rôle, une partie en coopération — et chacune streame son propre point de vue sur YouTube, Twitch ou Kick. Un spectateur veut voir tous les POV à la fois, alignés dans le temps, comme le ferait une régie multi-caméras — sauf gratuit, automatique et sans compte.
C'est tout le brief. L'écouter a pris quelques minutes ; la valeur était dans le cadrage serré et le refus de tout ce qui n'en faisait pas partie.
Du besoin au cadrage
La contrainte dure cachée dans cette phrase, c'est la synchronisation. Les flux démarrent à des instants différents, dérivent, et se mettent en pause indépendamment. Le produit se réduit donc à une question : comment aligner des flux arbitraires sans timecode commun ?
La réponse est devenue la colonne vertébrale de l'app : utiliser l'audio commun de la session que chaque participant capte comme signal de référence naturel, et corréler chaque flux avec lui.
Le cœur technique
- Sync audio GCC-PHAT côté client. La première version exécutait la corrélation croisée généralisée en TypeScript avec un Web Worker et FFT.js pour calculer un décalage par POV. Une
MasterClockpartagée pilotait ensuite chaque player ; la calibration était ajustable à la milliseconde et l'app se re-synchronisait automatiquement après chaque pause. Depuis juin 2026, ce cœur a été remplacé par un moteur Rust commun exposé en WASM côté web et réutilisé côté app native. - Trois plateformes, une vue. YouTube, Twitch et Kick — en VOD et en direct — passent par une abstraction unifiée, pour que l'interface ne traite jamais une plateforme à part.
- Sessions partageables sans compte. Toute la session est encodée dans le chemin de l'URL (
/s/…), donc une disposition est portable en commentaire ou en message privé. Aucune inscription, aucune base d'utilisateurs. - Un moteur de disposition qui s'efface. Grille auto, spotlight, theater et empilements ; glisser, redimensionner et sauvegarder ses propres dispositions.
Le plus léger possible, volontairement
L'ensemble est conçu pour porter le moins de poids possible — sur les deux fronts :
- Front-end. Solid compile vers un runtime minuscule sans virtual DOM, le service worker est fait maison sans aucune dépendance, et il n'y a ni système de compte ni base de données côté client. Résultat : un petit bundle qui démarre vite sur un téléphone.
- Architecture média. Les vidéos et les chats restent fournis directement par les players YouTube, Twitch et Kick. MultiPOV se concentre sur l'orchestration, la disposition et la synchronisation, sans dupliquer les flux déjà servis par les plateformes.
Cette sobriété, c'est le but : le gros du travail est délégué aux plateformes et au navigateur, et ce qui reste est assez petit pour être maîtrisé de bout en bout.
Une mise en production soignée
« Optimisé en production » n'est pas un slogan — c'est la rigueur autour de la partie amusante. Une PWA Solid + TypeScript, un service worker maison, un build reproductible et une landing bilingue FR/EN tenue en parité par des vérifications automatiques. L'objectif était simple : livrer quelque chose qui marche du premier coup quand on l'ouvre, sur mobile comme sur un écran 4K.
Le résultat est en ligne sur watchmultipov.app depuis mai 2026.
Essayez — et suivez la suite
Si vous organisez des sessions multi-POV, le plus rapide pour juger est d'en ouvrir une :
- watchmultipov.app — collez quelques liens, laissez la sync audio les aligner.
- Suivez le développement et les clips sur X et TikTok.
Un retour brut vaut mieux qu'un retour poli. Si un POV ne s'aligne pas ou qu'une disposition cloche, dites-le — c'est exactement le signal qui façonne l'itération suivante.