A metodologia ágil brasileira pra entregar software no último segundo.
cuzinho.dev é o site oficial da Metodologia No Cuzinho: um manifesto e um kit de sobrevivência pra quem sobe na sexta às 17:59 e dorme tranquilo.
Tem versão em inglês também (seletor PT / EN na navbar ou ?lang=en), porque gringo também entrega no cuzinho. Ele só não sabe que tem nome.
| Página | Rota | O que faz |
|---|---|---|
| Manifesto | /manifesto |
Os axiomas da metodologia. Cada um tem link próprio (/manifesto#a5) pra mandar no grupo certo. |
| Tradutor Corporativo | /tradutor |
O que você pensa × o que você manda no e-mail. |
| Desculpas pra Daily | /desculpas |
Gerador de desculpas com filtro: daily, produção caiu, estourou o prazo. |
| Elogios Corporativos | /elogios |
Feedback positivo com a sinceridade de sempre. Começa elogio, termina recado. |
| Mensagem de Commit | /commit |
fix: agora vai. Com modo sexta, que já vem com --force. |
| Bingo da Daily | /bingo |
Cartela 5×5 pra marcar durante a reunião. Fica salva no navegador. |
| Certificado | /certificado |
Certificado oficial de quem entrega no cuzinho, com imagem pra postar no X. |
A home ainda tem o contador regressivo pra sexta 17:59 e o axioma do dia, que é o mesmo pra todo mundo.
Se o seu repositório segue a metodologia, avise a comunidade:
[](https://cuzinho.dev)Precisa de Node 22 (tem .nvmrc).
npm install
npm run dev # http://localhost:5173
npm run build # tsc + vite, gera o dist/
npm run preview # serve o dist/ localNão tem testes. Seguindo o axioma 3, o usuário final é a melhor suíte de testes já criada, e ainda é de graça. Mas rode o npm run build antes de abrir PR, porque o TypeScript pega muita coisa.
PRs são bem-vindos. Sem review, claro. O jeito mais fácil de contribuir é com piada nova.
Todo o conteúdo fica em dois arquivos:
src/data.ts: portuguêssrc/data.en.ts: inglês
Regra de ouro: os dois arquivos são espelhos. Cada lista tem que ter a mesma quantidade de itens, na mesma ordem. É isso que faz /manifesto#a5 apontar pro mesmo axioma nas duas línguas e a cartela do bingo trocar de idioma sem perder as marcações.
Então, se adicionar um axioma no fim de AXIOMS em data.ts, adicione a versão em inglês no fim de AXIOMS em data.en.ts. Se não souber escrever em inglês, abra o PR mesmo assim e avise na descrição.
| Lista | O que é |
|---|---|
AXIOMS |
[título, nota] do manifesto |
DICT |
[o que você pensa, o que você escreve] do tradutor |
EXCUSES |
[desculpa, tag], com tag daily, prod ou prazo |
COMPLIMENTS |
[setup, punchline, tag], com tag classico, review ou feedback |
COMMITS |
mensagens de commit |
BINGO |
frases da cartela |
Algumas dicas:
- Localize, não traduza. A piada tem que funcionar pra quem nunca sentou numa daily brasileira. "Daily" vira "standup", "fix: pqp" vira "fix: ffs", futebol vira basquete.
- Não reordene nem remova itens do meio das listas. Isso quebra links de axiomas já compartilhados e cartelas de bingo salvas. Adicione no fim.
- Contagens como "33 axiomas" saem de
AXIOMS.length. Não precisa atualizar texto nenhum.
- Crie o componente em
src/pages/, com os textos da interface numtranslations(pt, en)(vejaDesculpas.tsxcomo modelo). - Se a página tiver listas de conteúdo, coloque nos dois
data*.tse inclua no tipoContentemsrc/i18n.ts. - Registre a rota em
ROUTESe no menu (NAV+navnas duas línguas) emsrc/App.tsx. - Adicione o card em
PAGESe nas duas versões depagesemsrc/pages/Home.tsx.
React 19 + TypeScript + Vite, sem framework de roteamento nem de i18n: os dois foram feitos na mão, em poucas linhas, em cima de useSyncExternalStore.
src/
├── App.tsx # layout, navbar, rotas
├── router.tsx # roteador mínimo (history API)
├── i18n.ts # idioma atual: ?lang= → localStorage → PT
├── data.ts # conteúdo em português
├── data.en.ts # conteúdo em inglês (espelho do data.ts)
├── share.ts # links do site, postar no X, sorteio
├── toast.tsx # copiar pro clipboard + aviso na tela
├── certImage.ts # gera a imagem do certificado em canvas
├── time.ts # contador pra sexta 17:59
├── components/ # Logo, PageHead
└── pages/ # uma página por rota
O site roda como um Cloudflare Worker servindo os arquivos estáticos do dist/. As rotas do cliente (/manifesto, /bingo…) caem no index.html (veja wrangler.jsonc).
npm run deployDe preferência numa sexta, às 17:59.
WTFPL: faça o que você quiser. Ninguém solta o cuzinho de ninguém.