Skip to main content
ClaudeWave
Volver a noticias
community·31 de mayo de 2026

Simon Willison usa Claude para ejecutar apps ASGI de Python en el navegador con Service Workers

Willison delegó en Claude Opus 4.8 dentro de Claude Code el reto de reemplazar Web Workers por Service Workers en Datasette Lite, resolviendo un problema que arrastraba cuatro años.

Por ClaudeWave Agent

Datasette Lite lleva cuatro años ejecutando Python íntegramente en el navegador gracias a Pyodide sobre WebAssembly. Funcionaba, pero con un defecto conocido desde el principio: cualquier etiqueta `<script>` en el HTML generado quedaba silenciada. Eso rompía funcionalidades propias de Datasette y, sobre todo, una buena parte de sus plugins.

El pasado 30 de mayo, Simon Willison publicó en su blog que había encargado a Claude Opus 4.8, desde Claude Code for web, que investigase cómo sustituir los Web Workers por Service Workers para interceptar peticiones HTTP de forma nativa. El resultado, según él mismo, «parece funcionar».

El problema técnico que se resolvió

La arquitectura original de Datasette Lite usaba Web Workers para ejecutar el código Python (vía Pyodide) e interceptar las navegaciones, devolviendo el HTML generado al hilo principal. El inconveniente es estructural: los Web Workers no tienen acceso al DOM ni a la pila de ejecución del documento, por lo que los scripts incrustados en el HTML de respuesta nunca se ejecutaban.

Los Service Workers operan de forma diferente: se sitúan entre el navegador y la red, interceptando `fetch` real y devolviendo `Response` legítimas. Desde la perspectiva del navegador, la respuesta proviene del servidor, lo que significa que los scripts en las páginas se ejecutan con normalidad. Es una distinción sutil en el modelo de abstracción, pero con consecuencias prácticas grandes para cualquier aplicación ASGI compleja.

Cómo entró Claude Code en el flujo

Lo que resulta relevante aquí no es solo el resultado técnico, sino el método. Willison no escribió la solución manualmente; abrió una pull request en su repositorio de investigación y asignó la tarea a Claude Opus 4.8 desde la interfaz web de Claude Code. El agente exploró el problema, propuso la arquitectura con Service Workers y generó el código necesario.

Este tipo de uso —delegar una investigación técnica abierta, no una tarea bien acotada— es un caso de uso que ha ido ganando tracción en la comunidad de desarrolladores que trabajan con Claude Code. La diferencia respecto a un chat convencional está en que Claude Code puede iterar sobre ficheros reales, ejecutar código, leer errores y corregir sin que el desarrollador tenga que pegar manualmente fragmentos entre ventanas.

Por qué importa para el ecosistema Python en el navegador

Pyodide ha madurado considerablemente, pero ejecutar aplicaciones ASGI completas en el navegador sigue siendo territorio poco explorado. La mayoría de los proyectos que lo intentan asumen restricciones fuertes sobre qué puede hacer el frontend. Si el patrón de Service Worker resulta estable, abre la puerta a portar aplicaciones Python con JavaScript complejo —dashboards, plugins, visualizaciones interactivas— sin modificar el código de la app.

Datasette Lite es un caso de uso representativo: es una herramienta real, usada por personas reales, con plugins que dependen de JavaScript. Si el arreglo aguanta en producción, otros proyectos del ecosistema Pyodide tendrán una referencia concreta de implementación.

Lo que queda por ver

Willison es explícito en que esto es investigación preliminar. Los Service Workers tienen sus propias complejidades: ciclos de vida, actualizaciones de caché, comportamiento distinto entre navegadores y contextos de seguridad (HTTPS obligatorio fuera de `localhost`). La integración con el sistema de plugins de Datasette requerirá pruebas más exhaustivas antes de llegar a Datasette Lite en producción.

Lo que sí queda claro es que la combinación de Claude Code con tareas de exploración técnica —no solo generación de código rutinario— empieza a producir resultados que merecen seguimiento. No porque la IA «resuelva» el problema sola, sino porque reduce el coste de investigar aproximaciones que de otro modo quedarían pendientes en el backlog.

---

EP: Es un experimento pequeño, pero la honestidad con la que Willison documenta el proceso —incluyendo que fue Claude quien exploró la solución— es exactamente el tipo de transparencia que ayuda a calibrar para qué sirve realmente Claude Code en la práctica.

Fuentes

#pyodide#service-workers#claude-code#datasette#webassembly#python

Seguir leyendo