Volver a la wiki

ADR: WebRTC peer-to-peer reemplaza Jitsi en el workspace del equipo

Estado

Aceptada — implementada en s79, commit fc83bf5 (22-05-2026).


Contexto

El workspace interno del equipo (Edu/Dani/Txell) necesitaba videollamadas integradas. La solución anterior usaba un <iframe> embebido apuntando a meet.jit.si (servicio público gratuito de Jitsi).

Problema detectado en s79

Durante las pruebas se descubrió que meet.jit.si público impone dos fricciones no suprimibles vía URL params:

  1. Pantalla prejoin “Join Meeting”: aunque prejoinPageEnabled=false funciona para algunos usuarios, el servidor público forzaba la pantalla en ciertos contextos.
  2. “Sign in as moderator”: el primer participante en una sala vacía recibe una pantalla de login para reclamar el rol de moderador. Es un mecanismo anti-spam de Jitsi público, no controlable por parámetros de URL.

El componente JitsiMeetingModal.tsx ya tenía documentado en su código que esta segunda pantalla era una “restricción no controlable de meet.jit.si público”. La alternativa de self-hostearse Jitsi requería un servidor dedicado (~5 €/mes + mantenimiento Docker).

Opciones evaluadas

OpciónCosteFricción UXPrivacidadComplejidad
Jitsi self-hosted (Hetzner)~5€/mes + opsMínimaAltaMedia
Daily.co / Whereby~15€/mesMínimaMediaBaja
WebRTC nativo browser + signaling propio0€CeroMáximaMedia
Jitsi público (status quo)0€Alta (screens no suprimibles)Media—

Decisión

Migrar a WebRTC nativo del browser con un endpoint de señalización mínimo sobre D1.

El vídeo va directo peer-to-peer (browser ↔ browser) usando:


Consecuencias

Positivas

Negativas / riesgos


Implementación

Ver [[feature—workspace—webrtc-peer-to-peer]] para la arquitectura técnica completa.

Componentes creados:

Eliminado:


Trabajo futuro pendiente

Véase también

Subir