13 pontos por GN⁺ 2025-03-28 | 4 comentários | Compartilhar no WhatsApp
  • Um texto que aborda os problemas de abertura e governança do Next.js: ausência de adaptadores, falta de suporte serverless oficial, caminhos de código exclusivos para a Vercel e a postura da Vercel na resposta a incidentes de segurança
  • A escolha da stack tecnológica é uma decisão importante que afeta no longo prazo a velocidade de desenvolvimento do projeto, a qualidade e a composição da equipe
  • Softwares de código aberto dão aos usuários a liberdade de estender e modificar o código, além da vantagem de evitar dependência de fornecedor
  • O Next.js é oferecido como open source, mas está intimamente ligado à infraestrutura da Vercel, que o criou
  • Não há problema em uma empresa lucrar com o open source que criou, mas, para ser um modelo sustentável, a fronteira entre o open source e a empresa precisa ser clara

Contexto e conflito de interesses do autor

  • O autor trabalha na Netlify há mais de 4 anos, e a Netlify concorre com a Vercel
  • Ao construir diretamente na Netlify a infraestrutura e o tooling para oferecer suporte a todos os recursos do Next.js, o autor passou a ter um entendimento profundo da estrutura interna do Next.js
  • Durante muito tempo evitou levantar essas questões publicamente, mas decidiu escrever este texto ao concluir que a forma como a Vercel lidou recentemente com um problema de segurança prejudicou a comunidade

# Problemas de abertura e governança do Next.js

Fato #1: ausência de adaptadores

  • A maioria dos frameworks modernos pode ser configurada com flexibilidade por meio de adaptadores, dependendo do destino de deploy
  • O Next.js não oferece suporte oficial a adaptadores, e o formato de saída é uma estrutura proprietária e não pública usada apenas na Vercel
  • A Vercel criou a Build Output API, mas o Next.js ainda não a suporta
  • Como resultado, provedores fora da Vercel precisam construir com base em APIs não documentadas, ficando vulneráveis a mudanças inesperadas
  • Cloudflare e Netlify estão colaborando no desenvolvimento de adaptadores para o Next.js por meio do OpenNext, e a Vercel também começou a participar, mas ainda não há um cronograma concreto

Fato #2: falta de suporte serverless oficial

  • A forma oficial de self-hosting do Next.js é baseada em servidores de longa duração, o que dificulta implementar escalabilidade flexível e redução de custos em ambientes reais de produção
  • No passado existia um modo serverless, mas ele foi removido em outubro de 2022 sem maiores explicações
  • A documentação oficial do React menciona que deploy serverless é possível, mas não há documentação oficial para implementar isso na prática
  • Provedores de hospedagem que desejam um ambiente serverless precisam fazer engenharia reversa no Next.js e criar sua própria implementação

Fato #3: existência de caminhos de código exclusivos para a Vercel

  • O Next.js inclui caminhos de código não públicos que funcionam apenas em deploys na Vercel (por exemplo, minimal mode)
  • Com esse modo, a Vercel consegue otimizações de desempenho, como executar middleware na edge
  • Middleware é um recurso que permite executar lógica rapidamente no caminho antes do cache, mas esse recurso só pode ser usado pela Vercel
  • A Netlify montou uma equipe dedicada de engenheiros e criou sua própria implementação para oferecer suporte a esse recurso, mas isso exige um nível de recursos impossível para provedores menores
  • O fato de a Vercel ser a única plataforma que oferece oficialmente todos os recursos do Next.js contraria a filosofia open source do framework

Incidente de segurança e a resposta da Vercel

  • Em 21 de março de 2025, foi divulgada uma vulnerabilidade crítica no Next.js (CVE, nota 9,1) que permitia contornar autenticação
  • A vulnerabilidade consistia no fato de que, ao incluir um cabeçalho específico na requisição, era possível desativar o middleware e acessar recursos protegidos
  • A falha foi reportada em 27 de fevereiro, mas a Vercel só começou a investigá-la em 14 de março
  • Embora tenha distribuído um patch rapidamente após reconhecer o problema, levou 8 dias para avisar outros provedores, como a Netlify
  • No post inicial do blog, havia uma descrição sugerindo que o firewall da Vercel havia protegido os clientes, mas na prática isso não era verdade
  • Isso levou vários provedores e desenvolvedores a reagirem com base em informações incorretas ou a enfrentarem confusão, e ainda é possível que muitos sites continuem vulneráveis

A propriedade da Vercel sobre o Next.js e a responsabilidade com o open source

  • Não há como negar que a Vercel é dona do Next.js, e monetizá-lo também é legítimo
  • No entanto, por ser oferecido como open source, outros provedores também deveriam poder usá-lo em condições de igualdade, e nesse ponto a Vercel está aquém do esperado
  • Redis, Grafana e WordPress também operam serviços comerciais junto com projetos open source, mantendo ainda assim abertura e interoperabilidade

Conclusão

  • Independentemente do framework escolhido, essa é uma decisão do usuário, e se o Next.js for a melhor opção para resolver o problema, tudo bem continuar usando-o
  • Ainda assim, é importante fazer essa escolha sabendo dos problemas estruturais e das limitações que o Next.js tem hoje

4 comentários

 
GN⁺ 2025-03-28
Opiniões do Hacker News
  • Eu usava next.js, mas abandonei o projeto quando fiz a transição do Page Router para o App Router. A experiência com o App Router foi tão ruim que depois disso não quis mais usar next.js
    • A Vercel finge ser open source, mas está construindo barreiras para prender os usuários à plataforma de hospedagem deles
  • Sempre tive um certo desconforto com a Vercel. Quando tentei fazer self-host do Next.js em uma VPS, caí em pequenas armadilhas que eles deixaram no caminho
    • A forma como eles lidaram com essa vulnerabilidade me deixou ainda mais desconfortável
    • A explicação inicial de que o firewall da Vercel "protegeu ativamente" os clientes deixou uma péssima impressão
    • Houve atraso em avisar outras plataformas, o que mostra que a Vercel tem menos incentivo para evitar que vulnerabilidades sejam introduzidas no Next.js
  • Eu alerto todo mundo para evitar next.js. O V0 provavelmente vai aumentar bastante a adoção
    • Muitos desenvolvedores novos não querem pensar em deploy e administração de sistemas
    • Se você só conhece React, a vantagem é conseguir SSR sem precisar aprendê-lo de fato
  • O motivo de eu ter desistido do next.js foi que, em projetos pequenos, as mudanças levavam de 6 a 7 segundos para aparecer no navegador
    • Agora uso React SPA e Vite
  • No ano passado, migramos de Next.js para Vike. A experiência de desenvolvimento melhorou muito
    • A maior parte das nossas necessidades é atendida com pré-renderização de páginas
  • Tenho sentimentos mistos sobre o Next.js. Por um lado, é uma empresa construindo um framework junto com investidores
    • Como a licença é MIT, a Netlify ou outra empresa pode fazer um fork e oferecer uma alternativa melhor
    • Se eu fosse investidor da Vercel, não haveria motivo para ajudar a concorrência e aumentar o risco do investimento
    • A Vercel apoia o open source, mas ao mesmo tempo tenta manter atritos para fazer da plataforma de hospedagem deles a melhor escolha
  • Estou no processo de escolher a stack React na empresa onde trabalho. Não consigo imaginar um motivo para escolher Next.js em vez das alternativas
    • Remix, React Router v7 ou TanStack são escolhas mais sensatas se você quer SSR
  • Não estou convencido de que a abordagem serverless seja um bom padrão. Ela adiciona complexidade desnecessária
    • Não gosto de usar JavaScript no backend
    • O foco em server components e no Next.js me pareceu visão de túnel
    • É bem provável que a abordagem serverless tenha sido a razão para a comunicação privilegiada usando cabeçalhos HTTP
  • Tem o pior tempo de build em desenvolvimento, e há muitas reclamações há anos sem solução
  • A Vercel e o NextJS não deveriam existir
    • Quando tentei usar Next uma vez, encontrei muitos erros de hidratação em produção
    • O framework torna tudo mais complicado por causa dos ganhos potenciais de renderizar no servidor
    • O framework inteiro parece ter sido criado como uma boa fachada para vender os serviços caros de nuvem deles
 
ahwjdekf 2025-03-28

O autor trabalha na Netlify e, segundo ele mesmo, é um concorrente direto da Vercel. Isso faz parecer que há certa falta de objetividade aqui.

 
preserde 2025-03-28

Se você comparou recentemente frameworks concorrentes como TanStack ou Remix, o conteúdo principal do texto já é algo que todo mundo conhece, em maior ou menor grau. Por enquanto, a participação do Next.js ainda é tão grande e a Vercel também não tem adotado movimentos tão explícitos, então isso ainda não veio à tona.

 
alpharoom 2025-03-28

Alegar falta de objetividade nas informações que o texto busca transmitir só porque a pessoa trabalha em uma empresa concorrente é um ataque pessoal. O texto parece estranho mesmo se você o ler sem considerar o contexto e os interesses da pessoa autora? Eu acho que é uma informação útil.