Appearance
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
| ADR | Decisão |
|---|---|
| 001 | Bun como runtime e package manager |
| 002 | Axios como HTTP client padrão |
| 003 | Docker Compose como ambiente de desenvolvimento |
| 004 | PostgreSQL como banco de dados |
| 005 | Zod para validação de variáveis de ambiente |
| 006 | Turborepo como orquestrador do monorepo |
| 007 | TypeScript 6 como linguagem padrão |
API
| ADR | Decisão |
|---|---|
| 001 | Fastify 5 + Bun como runtime |
| 002 | Build para binário standalone |
| 003 | Endpoint de conteúdo estático (v1) |
| 004 | Drizzle como ORM |
| 005 | Documentação da API com Scalar |
| 006 | Zod como type provider do Fastify |
| 007 | Colunas padrão e Soft Delete |
| 008 | Enums do PostgreSQL |
| 009 | Schema obrigatório em todas as rotas |
| 010 | Separação entre rota e handler |
| 011 | Schema extraído em constante |
| 012 | Ordem de registro por método HTTP |
| 013 | Estratégia de seed de produção |
Site
| ADR | Decisão |
|---|---|
| 001 | Next.js 16 com App Router |
| 002 | Biome como linter/formatter |
| 003 | Design system editorial |
| 004 | Rotas centralizadas |
| 005 | Conteúdo consumido da API |