Atualizado em 2026-10-28
Desenvolvimento
Setup, comandos e fluxo de contribuição deste repositório.
Pré-requisitos
- Node.js 24 ou mais novo
- pnpm 12 (fixado via
packageManagerno package.json)
Setup
pnpm install
Comandos
pnpm dev # turbo dev: app web com HMR
pnpm type-check # turbo type-check em todo o monorepo
pnpm lint # eslint (regras de next + typescript), zero warnings
pnpm test # turbo test (vitest)
pnpm format:check # prettier em todo o repo
pnpm build # build de produção em apps/web/.next
Todos os checks devem passar antes do push: pnpm lint com zero erros,
pnpm type-check com zero erros, pnpm format:check sem diferenças e um
pnpm build bem-sucedido.
Fluxo de localização
- Strings de interface: edite
packages/i18n/messages/en.jsone depois traduza os outros seis arquivos de idioma. Mantenha a estrutura de chaves idêntica. - Docs: edite
packages/content/docs/en/<slug>.mde depois atualize as traduções. Traduções ausentes caem no inglês automaticamente. - Após mudar messages ou docs, rode
pnpm builde confira cada rota de idioma no navegador.
Identidade git
Os commits do repositório são criados com a identidade do dono do projeto, e cada commit leva o trailer de coautoria:
Co-authored-by: Ella Mizuki
Proteção de branch
main é protegida: push por Maintainers, force push desabilitado.
Reescritas de histórico (como re-atribuir autoria de commits) exigem
remover a proteção temporariamente, fazer o force push e restaurá-la com as
configurações exatamente iguais.
Integração contínua
Nenhum servidor de CI observa este repositório. Rode os gates de qualidade
antes de cada push (pnpm type-check, pnpm lint, pnpm test,
pnpm format:check, pnpm build); a Vercel faz o build de produção no
deploy, e build quebrado quebra o deploy.
Testes antes do merge
A validação é:
- lint, typecheck, format:check e build;
- passada de navegador em 375, 768, 1024, 1440 e 1920px com zero overflow horizontal, em todos os idiomas;
- passada de reduced motion: sem shimmer ou transições ativas, conteúdo visível;
- navegação por âncora limpa o header fixo (scroll padding);
- rotas de docs resolvem em todos os idiomas, incluindo o fallback em inglês.