Skip to content

Architecture Decision Records (ADRs)

Registro das decisões arquiteturais do projeto. Cada ADR documenta o contexto, a decisão tomada e suas consequências.

Estrutura

apps/docs/adr/
├── NNN-slug.md      # Decisões globais (afetam todo o monorepo)
├── api/
│   └── NNN-slug.md  # Decisões específicas da API
├── site/
│   └── NNN-slug.md  # Decisões específicas do site
└── admin/
    └── NNN-slug.md  # Decisões específicas do admin
  • Raiz (apps/docs/adr/) — decisões que afetam o monorepo como um todo
  • Subdiretórios (api/, site/, admin/) — decisões específicas de cada projeto

Índice

Global

ADRDecisão
001Bun como runtime e package manager
002Axios como HTTP client padrão
003Docker Compose como ambiente de desenvolvimento
004PostgreSQL como banco de dados
005Zod para validação de variáveis de ambiente
006Turborepo como orquestrador do monorepo
007TypeScript 6 como linguagem padrão

API

ADRDecisão
001Fastify 5 + Bun como runtime
002Build para binário standalone
003Endpoint de conteúdo estático (v1)
004Drizzle como ORM
005Documentação da API com Scalar
006Zod como type provider do Fastify
007Colunas padrão e Soft Delete
008Enums do PostgreSQL
009Schema obrigatório em todas as rotas
010Separação entre rota e handler
011Schema extraído em constante
012Ordem de registro por método HTTP
013Estratégia de seed de produção

Site

ADRDecisão
001Next.js 16 com App Router
002Biome como linter/formatter
003Design system editorial
004Rotas centralizadas
005Conteúdo consumido da API