7 puntos por GN⁺ 2026-01-29 | 4 comentarios | Compartir por WhatsApp
  • 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

 
pkj3186 2026-01-29

No estoy muy informado, pero ¿qué clase de blog es el blog de Simon que aparece en las opiniones de Hacker News y por qué lo mencionan tanto...?

 
laeyoung 2026-01-29

Probablemente la razón por la que la entrada del blog de Simon Willison está siendo tan mencionada en Hacker News es que,

  1. Debe haber una razón por la que escribe tan bien, tan rápido y tanto sobre IA. Incluso eso de dibujar el famoso “pelícano en bicicleta” que suele usarse para probar el rendimiento de la IA, al parecer este señor fue de los primeros en hacerlo (https://simonwillison.net/search/?q=pelican)
  2. También tiene bastante reconocimiento por ser la persona que creó Django.
 
qyurila 2026-01-29

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.

 
GN⁺ 2026-01-29
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

    • Desde una perspectiva de ingeniería, me parece un diseño mucho más pulido que el navegador de Cursor
      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
    • Creo que la colaboración entre humanos y agentes marca la diferencia decisiva
      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
    • Impresiona que embedding-shapes haya sacado esto directamente con trabajo manual
      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

    • Cuando contribuí a KHTML/konqueror hace 20 años, implementar solo el renderizado básico tomaba meses
      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
    • Me pregunto qué modelo usaron y cuánto fue el costo en tokens
    • Las restricciones son excelentes
  • 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

    • No se consideró la seguridad en absoluto. Abrir sitios web arbitrarios sin sandbox es peligroso
      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 Linux enlaza 78 bibliotecas dinámicas para X11, glib, formatos gráficos, cifrado, etc.
    • No tiene dependencias de Rust; usa los frameworks base del 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

    • Este navegador no es tanto un producto independiente como un proyecto de respuesta al artículo de scaling-agents de Cursor
      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

    • De acuerdo. Para llamarlo navegador todavía le falta mucho, ni siquiera renderiza bien HTML básico y se cae con frecuencia
      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

    • Probablemente solo no habría sido posible
      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
    • Lo calculé con la herramienta sloccount
      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

    • Como alguien que también escribió sobre Cursor, cada vez entendía menos cómo definían ellos el “éxito”
      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

    1. que implementar AT-SPI desde cero sobre D-Bus, o
    2. usar una biblioteca C existente para D-Bus, o
    3. usar GTK o Qt