7 pontos por GN⁺ 2026-01-29 | 4 comentários | Compartilhar no WhatsApp
  • Um navegador capaz de renderizar HTML e CSS foi implementado diretamente em Rust por uma pessoa e um agente LLM em apenas 3 dias
  • O projeto foi concluído com cerca de 20.150 linhas de código e inclui funções básicas como rolagem, voltar e modo headless
  • Foi projetado para funcionar em Windows, macOS e Linux sem bibliotecas externas de Rust
  • O processo de desenvolvimento ocorreu em colaboração com o agente Codex: a pessoa cuidou da coordenação e validação, e o agente escreveu o código
  • No fim, o projeto mostrou que a combinação “uma pessoa + um agente” é mais eficiente do que vários agentes

Visão geral do projeto

  • O objetivo era criar do zero um navegador básico capaz de renderizar HTML e CSS
    • JavaScript não é suportado
    • O desenvolvedor começou “por diversão” e trabalhou em colaboração com o agente LLM (Codex)
  • Foram definidos requisitos como concluir em até 3 dias, proibir dependências externas em Rust e suportar os 3 principais sistemas operacionais
  • O navegador tem seu próprio motor de renderização e inclui captura de tela, clique em links e testes de regressão

Dia 1 – implementação inicial

  • Começando pela renderização de “Hello World”, foram adicionados tratamento de tags aninhadas e função de captura de tela
  • As especificações de HTML/CSS foram definidas, e foi introduzida comparação de imagens para testes E2E
  • Em apenas um dia, já havia chegado ao nível de buscar sites com X11 e cURL e renderizá-los
    • A base de código tinha cerca de 7.500 linhas, com todos os arquivos mantidos abaixo de 1.000 linhas

Dia 2 – expansão de funcionalidades

  • Para resolver o problema de abrir janelas durante os testes, foi adicionado o modo --headless
  • Houve melhorias em redimensionamento de janela, compatibilidade, desempenho e renderização de fontes
  • O fluxo de trabalho consistia em compartilhar capturas de tela de sites e fazer o Codex reproduzi-las
    • A maior parte do código foi escrita pelo agente, enquanto a pessoa ficou responsável por revisar e aprovar

Dias 3~4 – finalização e suporte multiplataforma

  • Foram adicionadas funções essenciais do navegador, como rolagem, logs de depuração e botão de voltar
  • O suporte a macOS e Windows foi implementado e passou nos testes
  • A integração com CI e o build de release foram concluídos, com tempo total de desenvolvimento de cerca de 72 horas

Resultado e estatísticas do código

  • A base de código final tem cerca de 20.150 linhas distribuídas em 72 arquivos
  • Entre os principais arquivos estão módulos como layout, style, platform e browser
  • O Cargo.lock está vazio, ou seja, pode ser executado de forma totalmente independente, sem pacotes externos de Rust
  • É possível baixar diretamente do GitHub os binários gerados pelo CI e o código-fonte

Principais lições

  • A combinação uma pessoa + um agente é mais eficiente do que usar milhares de agentes
  • Um único agente pode trabalhar por muito tempo em uma mesma base de código e gerar progresso real
  • Existe potencial para escalar o modelo em que várias pessoas tenham seu próprio agente
  • Ir mais devagar pode, paradoxalmente, levar a resultados melhores e mais rápidos
  • O papel do humano que conduz o agente pode ser mais importante do que o próprio design do sistema
  • Em resumo, para a pergunta “colocar vários agentes vai acelerar o desenvolvimento?”, este é um caso que mostra que
    a colaboração entre um único humano e um único agente pode ser mais realista e eficiente

4 comentários

 
pkj3186 2026-01-29

Pergunto porque não entendo muito bem, mas que blog é esse, o blog do simon, que aparece sendo mencionado o tempo todo nas opiniões do Hacker News...?

 
laeyoung 2026-01-29

Acho que o motivo de a postagem no blog do Simon Willison estar sendo tão mencionada no Hacker News provavelmente é que,

  1. deve haver uma razão para ele escrever tão bem, tão rápido e tanto sobre IA. Até aquele desenho clássico do “pelicano andando de bicicleta”, tão usado em testes de desempenho de IA, acho que foi esse sujeito que fez primeiro (https://simonwillison.net/search/?q=pelican)
  2. e ele também é conhecido por ser a pessoa que criou o Django.
 
qyurila 2026-01-29

Parece ser o blog que ficou em 1º lugar entre os blogs mais populares no Hacker News em 2025. Tanto pela reputação quanto pela quantidade considerável de artigos publicados, imagino que, para um usuário comum do Hacker News, seja o blog visitado com mais frequência e, por isso, acabe sendo naturalmente visto como um indicador.

 
GN⁺ 2026-01-29
Comentários do Hacker News
  • Acho que é uma demo de navegador gerado por código muito melhor que o FastRender do Cursor
    É bem menor, com cerca de 20 mil linhas em Rust, usa apenas bibliotecas do sistema para renderização de imagens e texto, e o código também é fácil de ler
    Por exemplo, o código de implementação do flexbox é bem claro
    Também publicou uma captura de tela renderizando meu blog, e ele lida bem com gradientes CSS e ícones SVG, mas falha com PNG
    Eu achava que um navegador de renderização HTML+CSS seria a tarefa perfeita para demonstrar agentes paralelos, então é surpreendente que tenha sido possível até com um único agente de programação

    • Do ponto de vista de engenharia, acho o design muito mais bem acabado do que o navegador do Cursor
      O importante não é simplesmente gastar muitos tokens, mas como usar os agentes de forma eficaz
      Eu também já gerei vários projetos e os abandonei alguns dias depois. Como os agentes só fazem o que lhes foi mandado sem feedback, se a direção estiver errada eles acabam cavando um buraco ainda mais fundo
    • Acho que a colaboração entre humano e agente faz a diferença decisiva
      Mesmo quando o Claude vai para uma direção estranha, se houver uma estrutura de agentes correta ele consegue se recuperar
      Atualmente estou fazendo experimentos separando agentes avaliadores, pesquisadores e implementadores
      Faço com que expandam os testes com base em pontuação ou investiguem a causa das falhas, e se não houver melhora, descarto o commit
      Esse tipo de estrutura é muito mais favorável ao controle de qualidade do código
      Numa era em que código é barato e descartável, o próprio workflow precisa mudar
    • É impressionante que a embedding-shapes tenha construído isso diretamente à mão
      Parece uma história de “Davi vs Golias”, em que 1 pessoa + 1 agente vence um navegador de 5 milhões de dólares e 1,6 milhão de LOC
      A IA ainda é uma caixa-preta, então todo mundo está experimentando para encontrar uma direção
      Já se passou um mês desde o início de 2026, e é interessante pensar que tipo de experimento vai aparecer daqui para frente
      Seria divertido se o Simon revisasse periodicamente o tópico de previsões para 2026 no HN
  • Eles definiram a regra de concluir em 3 dias, sem crates de terceiros em Rust, usando apenas bibliotecas nativas do SO para suportar X11/Windows/macOS
    Ficou pronto com cerca de 20 mil LOC, sendo 14 mil linhas do engine e 6 mil linhas de código de suporte de plataforma
    O código-fonte e os binários foram publicados

    • Quando contribuí para o KHTML/konqueror há 20 anos, levava meses só para implementar a renderização básica
      Hoje é muito mais eficiente graças às suítes de teste legíveis por máquina
      Antes, o comportamento do IE era praticamente o padrão de fato, mas agora isso melhorou muito com Google, Apple e outras contribuindo para a padronização
    • Fiquei curioso para saber que modelo foi usado e qual foi o custo em tokens
    • As restrições são excelentes
  • Independentemente da funcionalidade, tenho curiosidade sobre a auditoria de segurança desse tipo de codebase
    Rust deve ajudar, mas fico em dúvida se as garantias da linguagem são suficientes por si só

    • Segurança não foi considerada de forma alguma. Abrir sites arbitrários sem sandbox é perigoso
      Rust só impede erros básicos de memória; não impede, por exemplo, acesso a arquivos locais
      Como não há engine de JS, é difícil exfiltrar dados, mas se auditarem isso, provavelmente aparecerão várias vulnerabilidades graves
  • A comunidade estava esperando pelo browserBench, e fico feliz que finalmente tenha começado
    Navegadores estão entre os softwares mais complexos que existem, então esse tipo de tentativa será um marco para avaliar limites

  • É difícil imaginar fazer um navegador com 20 mil linhas
    Só o zlib já tem 12 mil linhas, então parece que falta alguma coisa
    Fico me perguntando se ele só faz chamadas de renderização do SO

    • No Linux, ele faz link com 78 bibliotecas dinâmicas para X11, glib, formatos gráficos, criptografia etc.
    • Não há dependências Rust; ele usa os frameworks nativos do SO
      O README especifica quais bibliotecas são usadas
  • Quando rodei aqui, a renderização pareceu bem confusa
    A cor dos links e o sublinhado não são consistentes, e no Windows o botão de voltar não funciona
    Mesmo assim, a página inicial do HN e o blog do Simon renderizam razoavelmente bem

    • Esse navegador é mais um projeto-resposta ao post scaling-agents do Cursor do que um produto independente
      O objetivo era implementar funcionalidades parecidas com menos LOC
      Como não existe stylesheet padrão, a cor dos links não é consistente
      No Windows 11 o botão de voltar funciona. Se você estiver no Windows 10, isso pode ser a causa
  • Renderizar o blog do Simon parece que vai virar o objetivo representativo dos navegadores de IA
    Mas por enquanto isso ainda está mais para um renderizador do que um navegador de verdade
    Seria mais impressionante ver a IA complementando a implementação de APIs em projetos como o Servo

    • Concordo. Isso não é suficiente para ser chamado de navegador, não consegue renderizar nem HTML básico direito e trava com frequência
      Ainda assim, é melhor que a tentativa do Cursor, e o fato de “compilar” já é pelo menos um avanço mínimo
  • Fiquei curioso para saber quanto tempo levaria se fosse feito sozinho
    Para entender a ajuda do agente, eu gostaria de saber a profundidade da especialização envolvida naquele guia

    • Sozinho, provavelmente seria impossível
      Eu conheço Rust, mas não conheço X11 nem as APIs de macOS e Windows, então seria difícil até começar
      Ainda assim, minha experiência com testes, infraestrutura e design ajudou na colaboração com o agente
    • Calculando com a ferramenta sloccount
      este projeto é estimado, na base do ano 2000, em 4,58 pessoas-ano e 610 mil dólares,
      e na base de 2025, em 5,6 anos e 1,38 milhão de dólares
  • O que torna este texto interessante não é o resultado, mas o foco no processo de construção e nas restrições
    A maioria dos textos se concentra no resultado ou no autor, mas este traz um insight centrado no processo

    • Como alguém que também escreveu sobre o Cursor, fui entendendo cada vez menos a definição deles de “sucesso”
      Por isso, senti que fazia mais sentido explorar o que realmente é difícil e em que parte do processo as coisas deram errado
  • Trabalho impressionante
    Fico curioso sobre como implementar acessibilidade (Accessibility) sem dependências Rust
    No Windows/macOS isso é possível com UI Automation e NSAccessibility, mas no X11 haveria:

    1. implementar do zero o AT-SPI via D-Bus, ou
    2. usar uma biblioteca C existente de D-Bus, ou
    3. usar GTK ou Qt