Sebastián notó que Electris pedía internet cada vez que se abría, y quiso que anduviera igual sin conexión. Le agregamos un service worker que guarda todo lo que el juego necesita para arrancar —la página, el binario de WebAssembly, los scripts y los diez archivos de audio— en la primera visita. Desde ahí en adelante carga del cache, así que se puede jugar en el subte, en el auto o con la conexión caída.

De paso quedó instalable: con el manifest y los íconos, el navegador ofrece agregarlo a la pantalla del teléfono, y se abre a pantalla completa como una app cualquiera.

La parte que da trabajo en estas cosas es el versionado del cache, porque un juego que se queda pegado a una versión vieja es peor que uno que tarda en cargar. Lo resolvimos generando el service worker durante el build: un script recorre la carpeta publicada, calcula un hash del contenido y lo mete en el nombre del cache. Si algún archivo cambia, el navegador ve un service worker distinto, se lo instala y descarta el cache anterior. Y como la versión nueva se activa recién cuando se cierran las pestañas, una partida en curso sigue tranquila hasta el final.

Para comprobar que funcionaba de verdad apagamos el servidor y recargamos: el juego arrancó igual, con la lógica de que lo único que podía estar sirviéndolo era el cache.