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.