# sa-daily-toolkit

Kit de ferramentas diário para Arquitetos de Solução: ADRs, Well-Architected, threat modeling e mais.

- URL: https://fernando.moretes.com/open-source/sa-daily-toolkit

- Markdown: https://fernando.moretes.com/open-source/sa-daily-toolkit/guide.md?lang=pt

- GitHub: https://github.com/fernandofatech/sa-daily-toolkit

- Language: TypeScript

- Topics: 

- Stars: 0

- Forks: 0

- Updated: 2026-05-16T01:43:26Z

---

SA Daily Toolkit é uma aplicação Next.js 16 de código aberto que centraliza os artefatos recorrentes do dia a dia de um Arquiteto de Soluções — ADRs, checklists Well-Architected, prompts de threat modeling, calculadoras de sizing e templates de RFC — em uma única interface web implantada em produção.

## Por que este projeto existe

Arquitetos de Soluções alternam contexto com frequência incomum. Em um único dia é possível revisar uma proposta de RFC de manhã, conduzir uma sessão de threat modeling à tarde e responder a um sizing de infraestrutura à noite. O custo cognitivo de recriar a estrutura de cada artefato do zero — ou de caçar o template certo em drives, wikis e chats — é real e se acumula.

Este repositório nasceu de uma necessidade prática: ter um conjunto pequeno e opinativo de ferramentas que eu realmente uso, versionadas, testadas e acessíveis de qualquer lugar via browser. A decisão de construir como uma aplicação web (em vez de um repositório de arquivos Markdown) foi deliberada: formulários interativos reduzem erros de preenchimento, calculadoras executam no cliente sem dependências de backend, e o histórico de decisões fica rastreável via ADRs gerados pelo próprio toolkit.

O projeto também serve como portfólio técnico bilíngue (PT/EN), demonstrando práticas de engenharia para produção: pipelines de CI/CD com GitHub Actions, deploy automatizado no Vercel, DNS via Cloudflare, análise de segurança estática e conformidade com Conventional Commits e GitFlow.

## O que está incluído

- **Gerador de ADR** usando o template MADR — preencha o formulário, exporte o arquivo.
- **Checklists Well-Architected** para os seis pilares do AWS Well-Architected Framework.
- **Prompts de threat modeling** prontos para colar em workflows com LLMs.
- **Calculadoras de sizing** para compute, storage e networking — execução no cliente, sem backend.
- **Pack de templates RFC** e **matriz de decisão** com critérios ponderados para propostas cross-team.
- **Tech radar generator** e **architecture spike notes** para registrar apostas tecnológicas e explorações pontuais.

## Stack técnica e decisões de arquitetura

A aplicação é construída sobre **Next.js 16 com App Router** e **React 19**, escrita inteiramente em **TypeScript 5** e estilizada com **Tailwind CSS 4**. A escolha do App Router permite separar claramente componentes de servidor (geração de templates estáticos, metadados) de componentes de cliente (calculadoras interativas, formulários com estado local).

O repositório mantém três pipelines independentes no GitHub Actions: `ci.yml` para lint e type-check a cada push, `frontend.yml` para build e testes da aplicação, e `security.yml` para análise estática de segurança. O deploy em produção é feito via Vercel com DNS gerenciado pelo Cloudflare, acessível em `toolkit.moretes.com`.

A estrutura do repositório é intencionalmente simples:

- `frontend/` — toda a aplicação Next.js
- `docs/` — ADRs do próprio projeto, diagramas de arquitetura e documentação técnica
- `.github/workflows/` — os três pipelines de CI/CD

As decisões de design do projeto estão documentadas em ADRs dentro de `docs/`, o que fecha o ciclo: o toolkit gera ADRs e o próprio toolkit é documentado com ADRs.

## Como o toolkit funciona

Fluxo de dados e componentes da aplicação, do desenvolvedor ao usuário final.

### 💻 Developer

- Developer local machine (user)

### 🔁 CI/CD

- GitHub Actions ci.yml (ci)
- GitHub Actions frontend.yml (ci)
- GitHub Actions security.yml (security)

### ☁️ Hosting

- Vercel deploy + CDN (edge)
- Cloudflare DNS + proxy (network)

### 🌐 Frontend

- Next.js 16 App Router (frontend)
- Tools ADR / WA / RFC Sizing / Radar (compute)

### 👤 End User

- SA / Engineer browser (user)

### Fluxos

- dev -> ci: push / PR
- ci -> frontend_pipeline: lint → build
- ci -> security: análise estática
- frontend_pipeline -> vercel: deploy automático
- vercel -> cloudflare: DNS / proxy
- cloudflare -> nextjs: toolkit.moretes.com
- nextjs -> tools: rotas App Router
- tools -> user: artefatos gerados
- user -> tools: inputs / formulários

## Instalação e uso local

1. **Pré-requisitos** — Node.js 20+ e npm 10+ instalados localmente. Não há dependências de banco de dados ou variáveis de ambiente obrigatórias para rodar em modo de desenvolvimento.

2. **Clone o repositório** — Clone o repositório e entre no diretório da aplicação frontend.

3. **Instale as dependências** — Execute `npm install` dentro da pasta `frontend/` para instalar todas as dependências do projeto.

4. **Inicie o servidor de desenvolvimento** — Execute `npm run dev` e abra `http://localhost:3000` no browser. O hot reload está habilitado por padrão.

5. **Lint e type-check** — Execute `npm run lint` para ESLint e `npm run build` para validar tipos TypeScript e gerar o build de produção localmente antes de abrir um PR.

6. **Consulte SETUP.md e OPERATIONS.md para deploy** — Para conectar o Vercel e o Cloudflare, siga o guia em `SETUP.md`. Para entender o GitFlow, segredos do Vercel e o pipeline de segurança, consulte `OPERATIONS.md`.

_Início rápido — do clone ao servidor local_

```bash
# Clone the repository
git clone https://github.com/fernandofatech/sa-daily-toolkit.git
cd sa-daily-toolkit

# Install dependencies (all tooling lives under frontend/)
cd frontend
npm install

# Start the development server
npm run dev
# → http://localhost:3000

# Type-check and lint before committing
npm run lint
npm run build

# The live production instance is always available at:
# https://toolkit.moretes.com
```

> **Calculadoras rodam inteiramente no cliente:** As calculadoras de sizing para compute, storage e networking não fazem chamadas a nenhum backend. Todo o processamento acontece no browser via React com estado local. Isso significa que os dados de dimensionamento que você insere nunca saem da sua máquina — relevante quando você está trabalhando com estimativas de projetos sensíveis.

## Perguntas frequentes

### Posso usar os templates sem rodar a aplicação web?

Os templates brutos (ADR, RFC, spike notes) estão documentados em `docs/`. Você pode copiá-los diretamente de lá. A aplicação web adiciona formulários interativos e validação, mas não é obrigatória para uso básico.

### O projeto suporta contribuições externas?

Sim. O projeto segue GitFlow e Conventional Commits. Consulte `CONTRIBUTING.md` para as diretrizes antes de abrir um PR. Issues são bem-vindas para sugestões de novos templates ou calculadoras.

### Por que Next.js e não um gerador de site estático simples?

O App Router do Next.js 16 permite misturar componentes de servidor (para geração de conteúdo estático e SEO) com componentes de cliente (para calculadoras e formulários interativos) sem fricção. Para um toolkit que combina conteúdo estático com lógica interativa, essa separação é mais limpa do que forçar tudo em um gerador puramente estático.

### Há um backend ou banco de dados?

Não. A aplicação é totalmente estática e client-side. Não há persistência de dados no servidor. Se você precisar salvar artefatos gerados, exporte-os manualmente ou integre com seu próprio sistema de armazenamento.

## Para quem é este projeto

SA Daily Toolkit é útil para Arquitetos de Soluções, Tech Leads e engenheiros sênior que produzem artefatos de arquitetura com regularidade e querem reduzir o tempo gasto em estruturação repetitiva sem abrir mão de rastreabilidade. Não é um substituto para ferramentas corporativas de documentação como Confluence ou Notion — é um complemento leve e offline-capable para a fase de rascunho e decisão.

Se você está avaliando este repositório como parte do meu portfólio: ele demonstra capacidade de entregar uma aplicação web completa com pipeline de CI/CD, práticas de DevSecOps e documentação técnica rigorosa, além de refletir o tipo de trabalho que faço como Arquiteto de Soluções no dia a dia.

## Referências e links

- [fernandofatech/sa-daily-toolkit — GitHub](https://github.com/fernandofatech/sa-daily-toolkit)
- [SA Daily Toolkit — Production (toolkit.moretes.com)](https://toolkit.moretes.com)
- [Architecture documentation (docs/architecture.md)](https://github.com/fernandofatech/sa-daily-toolkit/blob/main/docs/architecture.md)
- [MADR — Markdown Architectural Decision Records](https://adr.github.io/madr/)
- [AWS Well-Architected Framework](https://docs.aws.amazon.com/wellarchitected/latest/framework/welcome.html)
- [Next.js 16 App Router documentation](https://nextjs.org/docs/app)

## Links

- [GitHub repository](https://github.com/fernandofatech/sa-daily-toolkit)
