Visão geral
O NextCommit coleta automaticamente seus dados do WakaTime, organiza tudo em um banco de dados e transforma os registros diários em resumos claros e recomendações práticas para você melhorar foco, reduzir retrabalho e evoluir continuamente na sua rotina de programação.
Como funciona
- Coleta diária: a aplicação importa seus heartbeats do WakaTime.
- Organização dos dados: salva e estrutura informações como
languages,editors,projects,branches,machinesecategories. - Processamento: gera um summary por dia com totais, “top 5” por categoria e indicadores de diversidade/tempo.
- Insights: cria recomendações automáticas com base nos seus padrões de trabalho.
- Visualização: você acessa os detalhes do dia pela interface web (ex.:
/?on=YYYY-MM-DD).
O que você vê
-
Resumo diário estruturado:
- Total de tempo (ex.: 3h 42m) e principais destaques do dia.
- Top linguagens, editores, projetos, branches, máquinas e categorias.
- Quebras por seção (top 5) com tempo e percentual.
-
Recomendações inteligentes:
- Sugestões para diminuir alternância de contexto e evitar retrabalho.
- Dicas de organização do código, acessibilidade e build (quando aplicável).
- Pontos rápidos de melhoria em fluxo, tooling e hábitos de commits.
Por que usar
- Clareza: passa de métricas brutas para insights acionáveis.
- Foco: ajuda a priorizar tarefas e reduzir distrações técnicas.
- Evolução contínua: feedback diário para melhorar qualidade e velocidade.
Exemplo de fluxo diário
Pela manhã, o NextCommit importa seus dados do dia anterior, calcula o resumo e gera recomendações. Você abre a página do dia para ver:
Aqui vai um raio-x do dia e acoes praticas, baseadas no JSON: Resumo do dia - 1h37 totais (86.8% codando, 13.2% docs) - Principal: Python 1h21 - Projeto: nextcommit-django 1h36 - Foco tecnico: django (~60m), json (~31m), datetime/tracking (~26m cada), typing (~26m), pathlib (~19m), openai (~15m), requests/time (~11m) - 613 adicoes vs 4 remocoes de codigo (grandes incrementos, pouca limpeza) - 1 maquina, Linux, VS Code dominante - 1m30 em Unknown Project O que foi bem - Boa proporcao de tempo em Python e escrita de docs (12m) para consolidar mudancas - Investimento em typing, pathlib e estrutura de dados (tende a melhorar manutencao) - Foco claro em uma feature Django com integracao externa (openai/requests) e tratamento de tempo Riscos/alertas rapidos - Muitas adicoes e poucas remocoes: risco de PRs grandes, cobertura de testes insuficiente e divida tecnica - Uso de datetime/time pode gerar bugs de timezone (America/Sao_Paulo) se nao estiver tudo aware/UTC - Integracao com OpenAI/requests sem timeouts/retries/logs pode causar travas e flutuar confiabilidade - Unknown Project sugere perda de rastreabilidade Acoes de alto impacto (1-2h) - Qualidade de codigo - Ativar pre-commit: black, ruff, isort, mypy, bandit, end-of-file-fixer, trailing-whitespace - VS Code: format on save + ruff + mypy/pyright + pytest + Django - Testes essenciais - Cobrir serializacao JSON e normalizacao de datas (UTC), inclusive casos de horario de verao - Tests para integracao com OpenAI/requests com timeouts e retries (usar VCR.py ou responses) - Confiabilidade de integracoes - requests.Session + HTTPAdapter com Retry (exponential backoff), timeout padrao, user-agent claro - Para OpenAI: backoff, limites de taxa, timeouts, logs de latencia, mascarar PII nos logs - Timezone e datas - Garantir uso de timezone.now() (nao datetime.now()) - Armazenar em UTC, converter para local apenas em apresentacao - Normalizar entradas/saidas JSON em ISO 8601 com timezone - WakaTime hygiene - Renomear/associar o Unknown Project - Definir meta diaria (ex.: 2h foco) para feedback mais util Ajustes especificos no Django - Configs e segredos - Separar settings por ambiente e usar variaveis de ambiente (.env com django-environ) - Verificar ALLOWED_HOSTS, CSRF, CORS e django check --deploy - Modelos e queries - Se tracking gera muitas leituras, revisar select_related/prefetch_related e indices - Criar migracoes pequenas e frequentes; considerar squash depois - APIs/serializacao - Se usa DRF: validar JSON via Serializers (tipos, ranges, coercao de timezone) - Se views puras: validar com pydantic/marshmallow antes da logica - Contas/seguranca - Confirmacao de email, politicas de senha, 2FA se aplicavel - Protecao contra brute force (django-axes) e configuracao de expiracao de sessao - Observabilidade - Sentry para erros; logs estruturados (JSON) com correlacao de requests; metricas basicas DevEx e fluxo de trabalho - Commits e PRs menores, focados por assunto; manter escopo apertado - Rodar testes e linters no CI (GitHub Actions); coverage minimo - Pin de dependencias (poetry ou pip-tools) e atualizacoes semanais Sugerido para amanha (blocos curtos) - 25-30m: pre-commit + ruff/black/isort/mypy/bandit e format on save - 40-60m: testes para JSON/datetime (UTC, DST, inputs invalidos) e funcoes criticas - 20-30m: resiliencia nas chamadas OpenAI/requests (Session, Retry, timeout, logs) - 10m: arrumar Unknown Project e metas no WakaTime Sinais a monitorar - Aumento de tempo em json/datetime sem queda de bugs - Tamanho de PRs e tempo de revisao - Latencia/erros das chamadas externas - N+1 queries no Django (use Django Debug Toolbar durante dev) Se quiser, envio um checklist de pre-commit e um snippet de Retry/timeout para requests/OpenAI.
Resultados esperados
- Menos context switching e retrabalho.
- Commits mais consistentes e objetivos.
- Time-to-done menor nas tarefas recorrentes.