Una aplicación de teoría musical que corre entera en el navegador: el motor de teoría, el audio y el estado viven en el cliente, y el hosting solo entrega archivos. Tres vistas: contenedores, flujos y despliegue. Haz clic en cualquier caja; reproduce un flujo para ver el recorrido.
Cada caja es una pieza que corre por separado: el navegador de quien visita, un chunk que se descarga bajo demanda, el hosting de archivos o un servicio externo. Las líneas son llamadas reales: protocolo y qué viaja.
La teoría musical se calcula con Tonal en el navegador y el sonido se genera ahí mismo. No hay base de datos ni API: nada que mantener vivo y cero costo variable. El único dato estático es un JSON con progresiones de ejemplo.
El módulo 3D trae three y react-three-fiber, que pesan mucho. Se importa con lazy() y solo se descarga al abrir esa pestaña (o al activar el fondo de agua), así la carga inicial se mantiene ligera.
Los navegadores bloquean el audio hasta que la persona interactúa. La app arranca el contexto en el primer clic o tecla, sin botón aparte, y si el piano de soundfont no carga cae a un sintetizador para no quedar muda.
El resultado de npm run build es una carpeta dist/ con rutas relativas (base: "./"), así que funciona en la raíz de un dominio y en cualquier subcarpeta sin recompilar. El README la da por verificada servida desde /armonia-viva/ sin errores de consola. El hosting exacto de producción está por confirmar: este repo no trae script ni workflow de despliegue.
Pruebas del motor con vitest (npm test): teoría, acordes, modos, progresiones y galaxia. Sin pruebas de interfaz.
Qué gana: caché en el borde y un piano que no depende de un tercero. Qué no gana: velocidad de cómputo, que ya corre en el dispositivo de cada visitante.