Você não precisa de NextJS
O Next.js é a resposta padrão para construir apps React. É um ótimo framework. Mas o padrão não significa que seja necessário.
Usá-lo no projeto errado nos custou velocidade e causou atritos na equipe. Construímos um produto com muitos dados, com dashboards e gráficos. Quase todas as telas ficavam atrás de um login.
Para esse tipo de app, a renderização no lado do servidor (SSR) adicionou custo sem adicionar valor.
A ferramenta certa depende do que você está construindo.
Projetos focados em conteúdo: • Sites de marketing • Blogs • Lojas virtuais • Documentações • Use Next.js aqui. SEO é importante e o conteúdo é estático.
Projetos focados em aplicação: • Ferramentas internas • Dashboards • Painéis administrativos • Consoles SaaS • Use uma SPA baseada em Vite aqui. Esses apps ficam atrás de autenticação e dependem de APIs.
Mudamos do Next.js para uma SPA com Vite. Aqui está o porquê:
Depuração mais fácil Erros de servidor não mapeiam de forma limpa para os seus componentes. Erros no lado do cliente acontecem no navegador com stack traces claros. Isso torna a correção de bugs rápida.
Melhores testes Você não consegue testar facilmente de forma unitária um componente de servidor que renderiza outros componentes de servidor. Fizemos escolhas de design apenas para manter a testabilidade. Isso foi um erro.
Autenticação mais simples O SSR exige que o servidor valide tokens em cada requisição. Isso cria mais superfícies de ataque e uma lógica de cookies complexa. Um app focado no cliente lida com a autenticação em um só lugar: a API.
Custos de infraestrutura mais baixos O SSR precisa de um servidor sempre ativo para cada requisição. Um frontend estático é entregue como arquivos de um CDN. Você tem um serviço a menos para rodar e proteger.
Menos complexidade O Next.js força uma divisão entre servidor e cliente. Engenheiros de frontend tiveram que gerenciar preocupações de servidor, como middleware e cache. Isso nos atrasou.
Migramos em fases. Mantivemos o Next.js para as páginas públicas críticas para SEO. Movemos todo o resto para uma SPA com Vite.
As compensações foram pequenas: • SEO: Dashboards atrás de um login não precisam de SEO. • Carga inicial: Apps com muitos dados geralmente são lentos por causa do banco de dados, não do framework.
Use Next.js se SEO e previews sociais forem importantes. Use uma SPA com Vite se o seu app for interativo, orientado a dados e estiver atrás de um login.
Pare de usar o padrão. Pergunte a si mesmo o que você está realmente construindo.
Fonte: https://dev.to/moruno21/you-dont-need-nextjs-heres-why-708
