Um lugar pra registrar suas ideias de side project e ir colocando tarefas em cada uma. CRUD simples, dados em memória, feito pra demonstrar o Claude Code ao vivo.
- Next.js (App Router) com as rotas de API dentro do próprio projeto
- React + TypeScript
- shadcn/ui + Tailwind CSS v4
- Dados em memória (sem banco): um store em módulo, populado com seed. O estado some quando o processo reinicia.
- Node 20+
- pnpm (o projeto usa pnpm, não npm)
Este repositório usa duas proteções de supply-chain no pnpm-workspace.yaml:
minimumReleaseAge: 10080— o pnpm nunca instala uma versão publicada há menos de 7 dias.allowBuilds— build scripts de dependências ficam bloqueados por padrão (o toolchain não precisa de nenhum).
pnpm install
pnpm dev # http://localhost:3000Outros comandos:
pnpm build # build de produção
pnpm start # serve o build
pnpm lint # eslint
pnpm typecheck # tsc --noEmit
pnpm format # prettierapp/
page.tsx # dashboard (lista de projetos)
projects/[id]/page.tsx # detalhe do projeto + tarefas
api/
projects/ # GET (lista), POST (cria)
projects/[id]/ # GET, PATCH, DELETE
projects/[id]/tasks/ # POST (adiciona tarefa)
tasks/[id]/ # PATCH (marca/edita), DELETE
components/ # UI da aplicação + components/ui (shadcn)
lib/
types.ts # Project, Task e tipos de entrada
store.ts # store em memória + seed
http.ts # validação no boundary da API
api-client.ts # wrappers de fetch usados pelo client
status.ts # rótulos e ícones de status
format.ts # formatação de data
| Método | Rota | Descrição |
|---|---|---|
| GET | /api/projects |
Lista projetos com contadores de tarefa |
| POST | /api/projects |
Cria um projeto |
| GET | /api/projects/:id |
Detalhe do projeto + tarefas |
| PATCH | /api/projects/:id |
Atualiza um projeto |
| DELETE | /api/projects/:id |
Remove o projeto e suas tarefas |
| POST | /api/projects/:id/tasks |
Adiciona uma tarefa |
| PATCH | /api/tasks/:id |
Marca como feita ou edita o título |
| DELETE | /api/tasks/:id |
Remove a tarefa |
Sem autenticação e sem persistência: é uma base de demonstração.