ARCHITECTURE — Pulse (documento comentado)
Pulse coleta respostas de NPS via link público e mostra o resultado consolidado para o time do produto. É um Next.js único sobre Supabase — sem serviços extras, porque o MVP não...
Exemplo da AEX Engineering. Este é um
ARCHITECTURE.mdmodelo-ouro de um projeto fictício ("Pulse", um MVP de pesquisa de NPS). As anotações> 💡não fazem parte do documento real — existem só para explicar por que cada parte está bem escrita.
💡 Abra com uma frase que qualquer pessoa entende, antes de qualquer diagrama. Se o leitor não sabe o que o sistema faz, o diagrama não ajuda.
Visão geral
Pulse coleta respostas de NPS via link público e mostra o resultado consolidado para o time do produto. É um Next.js único sobre Supabase — sem serviços extras, porque o MVP não precisa.
💡 Note a última frase: ela justifica uma ausência. Documentar o que não existe (e por quê) evita que o próximo dev "conserte" algo de propósito.
Diagrama de componentes
💡 Um diagrama simples que bate com a "visão geral". Diagrama que contradiz o texto gera desconfiança em tudo o mais.
Camadas e responsabilidades
| Camada | Responsabilidade | Neste projeto |
|---|---|---|
| Frontend | Interface. | Next.js |
| Backend | Regras e API. | Next.js API routes |
| Banco | Persistência. | Supabase / PostgreSQL |
| Deploy | Publicação. | Docker + Coolify |
💡 Tabela em vez de prosa: escaneável em segundos. A coluna "Neste projeto" conecta o conceito genérico à realidade — é isso que o leitor procura.
Decisões-chave
- Next.js full-stack para reduzir superfície no MVP → ver
DECISIONS.md(ADR-001) - Sem fila de mensagens: volume de respostas não justifica → ver
DECISIONS.md(ADR-002)
💡 Não explique a decisão inteira aqui. Aponte para o
DECISIONS.md(fonte única) e diga só o suficiente para o leitor decidir se precisa abrir.
Estratégia de escala
Enxuto agora. Se o volume de respostas crescer a ponto de travar a consolidação em tempo real, avaliamos materialização/cache — não antes.
💡 Fecha alinhado à filosofia "infra escalável só quando necessária". Dá um gatilho concreto ("quando travar a consolidação") em vez de um vago "no futuro".
💡 Rodapé com links relativos para os documentos irmãos. Facilita a navegação e reforça que os documentos formam um conjunto, não ilhas.
Modelo de dados: DATABASE.md · Contrato da API: API.md · Decisões: DECISIONS.md
Supabase
Supabase é a plataforma padrão da AEX para banco de dados (PostgreSQL), autenticação e storage. É a base de dados da maioria dos MVPs.
Sample Documentation — Modelo-ouro
Use esta pasta como referência de como escrever bem a documentação da AEX. Não é sobre ter todos os arquivos — é sobre cada arquivo ser claro, direto e útil para outro desenvolv...