Felipe Moacir

Turborepo: Monorepos que Não Travam o CI

MonorepoBuildCI/CDVercel
Turborepo: Monorepos que Não Travam o CI

Monorepos facilitam código compartilhado, mas podem deixar o CI lento se tudo for construído sempre. O Turborepo (Vercel) é um sistema de build que orquestra tarefas, usa cache remoto e evita trabalho redundante.

Com base no site oficial e na documentação:

1. O que o Turborepo Faz

  • Orquestra tarefas com base em dependências entre pacotes
  • Remote caching — compartilha cache entre máquina local e CI
  • Incremental builds — só reconstrói o que mudou
  • Integração com qualquer CI — GitHub Actions, CircleCI, etc.

2. Ganhos Reais

A plataforma Turborepo reporta mais de 9 milhões de horas de compute economizadas. Exemplo citado: equipe de 4 pessoas reduziu 67 horas de CI.

3. Como Começar

  • Instalação via npm, yarn, pnpm ou bun
  • Templates para monorepos básicos, multi-framework (ex: SvelteKit + Tailwind)

4. Migração Incremental

É possível adotar Turborepo em repositórios existentes sem reescrever tudo — configuração gradual.

5. Quando Vale a Pena

  • Monorepo com vários pacotes e builds interdependentes
  • CI demorando muito
  • Time distribuído precisando de cache compartilhado

6. Configuração Básica

No turbo.json, defina as tasks e suas dependências. Exemplo: build depende de ^build (build dos dependentes). O Turborepo descobre o grafo automaticamente via package.json e só executa o que mudou.

7. Remote Cache (Vercel ou Self-Hosted)

O cache pode ser compartilhado via Vercel (integrável ao Turborepo) ou self-hosted com servidor de cache. Um dev em São Paulo e outro em Berlim compartilham o mesmo cache — quem buildou primeiro, todos aproveitam.

8. Alternativas

Nx e Lerna também tratam de monorepos. O Turborepo se destaca pela simplicidade e pela integração com o ecossistema Vercel. Se você já usa Vercel para deploy, a adoção é natural.