- Un navegador capaz de renderizar HTML y CSS fue implementado directamente en Rust por una sola persona y un agente LLM en apenas 3 días
- El proyecto se completó con aproximadamente 20,150 líneas de código e incluye funciones básicas como scroll, retroceso y modo headless
- Fue diseñado para funcionar en Windows, macOS y Linux sin bibliotecas externas de Rust
- El proceso de desarrollo avanzó mediante colaboración con el agente Codex: la persona se encargó de coordinar y verificar, y el agente de escribir el código
- Como resultado, muestra un caso en el que la combinación de “una persona + un agente” es más eficiente que usar muchos agentes
Resumen del proyecto
- El objetivo era crear desde cero un navegador básico capaz de renderizar HTML y CSS
- No es compatible con JavaScript
- El desarrollador lo empezó “por diversión” y lo llevó adelante en colaboración con un agente LLM (Codex)
- Se fijaron restricciones como terminarlo en 3 días, prohibir dependencias externas de Rust y dar soporte a los 3 principales sistemas operativos
- El navegador cuenta con su propio motor de renderizado e incluye función de captura de pantalla, clic en enlaces y pruebas de regresión
Día 1 – Implementación inicial
- Comenzó renderizando “Hello World” y luego añadió manejo de etiquetas anidadas y función de captura de pantalla
- Definió la especificación de HTML/CSS e introdujo comparación de imágenes para pruebas E2E
- En un solo día llegó al punto de obtener y renderizar sitios web usando X11 y cURL
- La base de código era de unas 7,500 líneas y todos los archivos se mantuvieron por debajo de 1,000 líneas
Día 2 – Expansión de funciones
- Para resolver el problema de que se abrieran ventanas durante las pruebas, se añadió el modo
--headless
- Se mejoraron el redimensionamiento de ventana, la compatibilidad, el rendimiento y el renderizado de fuentes
- El flujo de trabajo consistía en compartir capturas de pantalla de sitios web y hacer que Codex las reprodujera
- La mayor parte del código fue escrita por el agente, mientras que la persona se encargó de revisarlo y aprobarlo
Días 3~4 – Finalización y soporte multiplataforma
- Se añadieron funciones esenciales del navegador como scroll, logs de depuración y botón de retroceso
- Se implementó soporte para macOS y Windows y se logró pasar las pruebas
- Se completaron la integración de CI y las builds de lanzamiento, con un tiempo total de desarrollo de unas 72 horas
Resultados y estadísticas del código
- La base de código final consta de aproximadamente 20,150 líneas en 72 archivos
- Entre los archivos principales se incluyen módulos como
layout, style, platform y browser
Cargo.lock está vacío, es decir, puede ejecutarse de forma completamente independiente sin paquetes externos de Rust
- En GitHub se pueden descargar directamente los binarios generados por CI y el código fuente
Principales aprendizajes
- La combinación de una persona + un agente es más eficiente que usar miles de agentes
- Un solo agente puede trabajar durante mucho tiempo sobre una misma base de código y lograr avances reales
- Existe potencial para escalarlo a una forma en la que varias personas tengan cada una su propio agente
- Reducir la velocidad puede, paradójicamente, producir resultados más rápidos y mejores
- El rol del humano que dirige al agente puede ser más importante que el diseño del sistema
- En conclusión, ante la pregunta “¿meter más agentes acelera el desarrollo?”,
este caso muestra que la colaboración entre un solo humano y un solo agente puede ser más realista y eficiente
4 comentarios
No estoy muy informado, pero ¿qué clase de blog es el
blog de Simonque aparece en las opiniones de Hacker News y por qué lo mencionan tanto...?Probablemente la razón por la que la entrada del blog de Simon Willison está siendo tan mencionada en Hacker News es que,
Parece que es el blog que quedó en 1.º lugar entre los blogs más populares en Hacker News en 2025. Entre su reputación y la gran cantidad de artículos que publica, probablemente se lo considera de forma natural como un indicador, ya que para un usuario común de Hacker News es el blog que termina visitando con más frecuencia.
Comentarios en Hacker News
Creo que es una demo de navegador generado por código mucho mejor que FastRender de Cursor
Es mucho más pequeño, con unas 20 mil líneas en Rust, usa solo bibliotecas del sistema para renderizar imágenes y texto, y el código también es fácil de leer
Por ejemplo, si ves el código de implementación de flexbox, se entiende con claridad
También subió una captura de pantalla renderizando mi blog; maneja bien los gradientes CSS y los íconos SVG, pero falla con PNG
Pensé que un navegador que renderiza HTML+CSS era la tarea perfecta para demostrar agentes en paralelo, así que me sorprende que también haya sido posible con un solo agente de programación
Lo importante no es simplemente gastar muchos tokens, sino cómo usar eficazmente a los agentes
A mí también me ha pasado que genero varios proyectos y luego los abandono a los pocos días. Sin retroalimentación, los agentes solo hacen lo que se les pide, así que si van en la dirección equivocada, terminan cavando un hoyo aún más profundo
Aunque Claude se vaya por una dirección absurda, si hay una estructura de agentes correcta, puede recuperarse
Ahora mismo estoy experimentando con separar agentes evaluadores, investigadores e implementadores
Les hago ampliar las pruebas según una puntuación o investigar la causa de los fallos, y si no hay mejora, descarto el commit
Esta estructura resulta mucho más favorable para el control de calidad del código
En una época en la que el código es barato y desechable, el flujo de trabajo mismo tiene que cambiar
Se siente como una historia tipo “David vs Goliath” donde 1 persona + 1 agente vence a un navegador de 5 millones de dólares y 1.6 millones de LOC
La IA sigue siendo una caja negra, así que todos siguen experimentando para encontrar el rumbo
2026 apenas lleva un mes, y da curiosidad ver qué otros experimentos saldrán
Estaría divertido que Simon revisara periódicamente el hilo de predicciones de HN para 2026
Se pusieron la regla de hacerlo con un límite de 3 días y de soportar X11/Windows/macOS sin crates de terceros en Rust, usando solo bibliotecas base del sistema operativo
Lo terminaron con unas 20 mil LOC, de las cuales 14 mil líneas son del motor y 6 mil del código de soporte de plataforma
Publicaron el código fuente y los binarios
Ahora es mucho más eficiente gracias a las test suites legibles por máquina
Antes el comportamiento de IE era de facto el estándar, pero ahora Google, Apple y otros contribuyen a la estandarización, así que la situación ha mejorado mucho
Más allá de la funcionalidad, me da curiosidad la auditoría de seguridad de una base de código así
Rust ayudará, pero dudo que las garantías del lenguaje por sí solas sean suficientes
Rust solo evita errores básicos de memoria; no impide cosas como el acceso a archivos locales
Como no hay motor JS, es difícil exfiltrar datos, pero si se auditara, probablemente aparecerían varias vulnerabilidades graves
La comunidad ha estado esperando browserBench, así que me alegra que por fin haya empezado
Los navegadores son uno de los software más complejos que existen, así que este tipo de intentos servirá como referencia para evaluar límites
Me cuesta imaginar que se pueda hacer un navegador en 20 mil líneas
zlib por sí solo ya tiene 12 mil líneas, así que parece que falta algo
Me pregunto si solo hace llamadas de renderizado al sistema operativo
En el README se especifica qué bibliotecas utiliza
Yo lo ejecuté y el renderizado se siente bastante confuso
El color de los enlaces y los subrayados no son consistentes, y en Windows el botón de retroceso no funciona
Aun así, renderiza bastante bien la página principal de HN y el blog de Simon
El objetivo era implementar capacidades similares con menos LOC
No tiene una hoja de estilos por defecto, por eso el color de los enlaces no es uniforme
En Windows 11 el botón de retroceso funciona. Si estás en Windows 10, quizá esa sea la causa
Parece que renderizar el blog de Simon se volverá el objetivo de referencia para los navegadores de IA
Pero por ahora esto todavía se parece más a un renderizador que a un navegador real
Sería más impresionante ver a la IA complementar la implementación de APIs en proyectos como Servo
Aun así, está mejor que el intento de Cursor, y el hecho de que “compila” ya es al menos un avance mínimo
Me pregunto cuánto habría tardado si lo hubiera hecho solo
Para entender la ayuda del agente, me gustaría saber qué tan profunda era la especialización incluida en esa guía
Sé Rust, pero no sabía de X11, macOS ni de la API de Windows, así que habría sido difícil incluso empezar
Aun así, mi experiencia en pruebas, infraestructura y diseño sí ayudó a colaborar con el agente
Este proyecto se estima, en valores del año 2000, en 4.58 años-persona y 610 mil dólares,
y en valores de 2025, en 5.6 años y 1.38 millones de dólares
Lo interesante de este texto no es el resultado, sino que se enfoca en el proceso de construcción y las restricciones
La mayoría de los textos se concentran en el resultado o en el autor, pero este aporta una mirada centrada en el proceso
Por eso sentí que tenía más sentido explorar qué parte era realmente difícil y qué falló en el proceso
Trabajo impresionante
Me pregunto cómo se podría implementar la accesibilidad (Accessibility) sin dependencias de Rust
En Windows/macOS se puede con UI Automation y NSAccessibility, pero en X11 habría