---
title: "Turborepo: por que usamos monorepo na NTLabs"
description: "Com 6 produtos e 12 pacotes, a NTLabs roda tudo num Turborepo. Cache inteligente, paralelismo e um só npm install."
author: "Anderson Henrique"
date: "2025-10-22T11:00:00Z"
updated: "2026-04-08T14:36:02.919029Z"
category: "bit-by-bit"
tags: ["turborepo","monorepo","arquitetura","ferramentas"]
canonical: "https://www.ntlabs.dev/blog/bit-turborepo-monorepo-ntlabs"
locale: "pt"
---

A NTLabs tem 6 produtos, 12 pacotes compartilhados, uma API FastAPI e um frontend Next.js. Tudo num monorepo com Turborepo.

Por quê?

## O problema que resolve

Antes, cada produto era um repositório separado. Resultado:
- Duplicação de código (auth, UI, tipos)
- Versões divergentes de dependências
- Deploy manual de cada projeto
- Mudança no SDK = PR em 6 repos

## Como organizamos

```
apps/        → web (Next.js), api (FastAPI)
packages/    → ui, auth, config, billing, sdk...
products/    → hipocrates, mercurius, polis, argos, agora, cidadao
```

Cada produto tem seu próprio `CLAUDE.md` com fronteiras claras. Produtos não modificam arquivos fora do seu diretório.

## O que o Turbo nos dá

- **Cache inteligente**: build de pacote inalterado = 0s
- **Paralelismo**: `turbo run build` executa tudo em paralelo respeitando dependências
- **Filtros**: `turbo run dev --filter=sistema-hipocrates` roda só o que preciso
- **Um `npm install`**: todas as dependências resolvidas de uma vez

## O trade-off

Monorepo não é grátis. O `node_modules` é grande, o CI precisa ser inteligente sobre o que testar, e onboarding de devs novos exige documentação boa.

Mas para times pequenos com múltiplos produtos? **Monorepo é superpoder.**
