← Voltar pro Blog Engenharia · Stack

Stack Otom 2026: como decidimos entre Next.js, Vite e React Native

14 min de leitura· Publicado em 20 Abril 2026· Por Otom Sales

Em 2026, ninguém mais ganha pontos por escolher stack moderna. Todo mundo sabe Next.js, todo mundo sabe React Native, todo mundo já ouviu falar de Vite. O que faz diferença pro cliente é quando usar o quê, e os motivos por trás da decisão.

Esse texto mostra como decidimos na Otom em 3 casos comuns. Não é "esse é o melhor framework de 2026". É: dado um problema X, com restrição Y e equipe Z, qual stack diminui dor.

Caso 1 · Site institucional + landing de campanha

Stack escolhida: Next.js 15 (App Router) + Tailwind + Vercel.

Por quê:

  • SEO técnico: SSR/SSG nativo, metadata API, sitemap dinâmico, robots por rota. Vite SPA também faz, mas dá mais trabalho.
  • ISR pra blog: regenera só a página que mudou. Mantém site rápido com 200+ posts.
  • Edge functions: roteamento por geografia, A/B test no servidor, redirect inteligente.
  • Vercel: deploy contínuo, preview por PR, analytics builtin. Outro provedor funciona, mas Vercel + Next reduz fricção.

O que evitamos:

  • Server Components em tudo. Onde precisa de interação rápida (carrossel, accordion), client component. Sem dogma.
  • tRPC pra site público. Site institucional pega dado de CMS ou estático. tRPC vira complexidade sem retorno.

Caso 2 · Dashboard interno (CRM, ERP, painel ops)

Stack escolhida: Vite + React 19 + Tailwind + shadcn/ui + NestJS API + Postgres + Prisma.

Por quê não Next:

  • Dashboard interno não precisa de SEO. SSR pesa o build, complica auth, e o usuário tá logado.
  • SPA é mais rápida pro fluxo de tela. Carrega 1 vez, navega zero round-trip. Em dashboard isso vira UX visível.
  • Hot reload de Vite é absurdamente mais rápido que o do Next. Em ciclo de iteração com cliente, isso paga.

Por quê NestJS no back:

  • Estrutura opinada, módulo, controller, service, DTO. Time grande achar arquivo sem ler README.
  • DI nativa, fila com BullMQ, validação com class-validator, swagger automático. Pacote completo.
  • Compatível com Prisma, TypeORM, raw SQL. Não te prende.

O que evitamos:

  • Microservices. Monolito modular resolve quase tudo até 30 desenvolvedores. Microservice é overhead disfarçado de boa prática.
  • GraphQL. REST + tipos compartilhados (via zod ou Prisma type) entrega quase a mesma DX com 1/3 da complexidade.

Caso 3 · App de cliente (iOS + Android)

Stack escolhida: React Native + Expo + EAS Build.

Por quê não Flutter:

  • Time React já existe, reuso de conhecimento e código.
  • Ecossistema npm é maior. Pra integração com SDK específico (analytics, push, biometria), tem lib pronta.
  • Expo cobre 90% dos casos sem ejetar. Build na nuvem, OTA, push, biometria, deep link tudo nativo.

Quando NÃO usaríamos React Native:

  • App de jogo ou animação complexa (Flutter ou nativo puro)
  • App com integração nativa muito pesada (camera, AR, ML on-device), depende, mas tendência a nativo
  • App que vai usar muito hardware específico (NFC mais profundo, sensores customizados)
Regra prática Otom Stack vira detalhe quando a equipe domina. Stack vira problema quando você escolhe pela novidade e não tem quem mantenha em 2 anos. Time pequeno: stack boring que o time conhece. Time grande: stack moderna com camada de abstração.

O que mudou de 2024 pra 2026

  • Next.js 15: Server Actions amadureceu, vale a pena pra forms simples. Caching ficou previsível depois do 14.2.
  • React 19: hooks novos (use, useActionState) simplificam padrões que antes precisavam de lib externa.
  • shadcn/ui: virou padrão pra dashboard interno. Não é lib, é template, você dono do código, sem dependência.
  • Bun: testamos em projeto novo. Ainda não substitui Node em produção pra todos os casos, mas em scripts de build e CLIs ganhou espaço.
  • Drizzle ORM: subiu. Pra projeto novo, comparamos com Prisma caso a caso. Drizzle ganha em controle de SQL e perf; Prisma ganha em DX e migrations.

O que NÃO usamos em produção (e por quê)

  • Remix: bom framework, mas perdeu energia. Next domina ecossistema, então é menos arrisco.
  • SvelteKit: ótimo. Não é stack que cliente conhece pra contratar próximo dev.
  • Astro: usamos pra blog estático puro. Pra site com app sections, voltamos pra Next.
  • Deno Deploy: cool. Edge inferior à Cloudflare/Vercel em prática.

Resumo de 3 linhas

Site público com SEO: Next.js. Dashboard interno: Vite + Nest. App mobile: React Native + Expo. Tudo TypeScript estrito. Tudo com tipos compartilhados back/front. Tudo com observabilidade (Sentry + GA4 + log estruturado) desde o dia 1, porque debugar produção sem isso é roleta russa.

Sua próxima sprint precisa de stack que aguente.

A gente desenha a arquitetura junto com você no diagnóstico, antes de qualquer commit.

Falar com engenharia