Visão geral
O pulso.app acompanha hábitos e transforma os registros em análise: streaks, heatmap anual, percentuais por mês, metas com progresso, um módulo de finanças com recorrências e um temporizador de foco. A interface segue a estética de console de engenharia, com tipografia técnica, trilha de grade e tema claro/escuro.
O problema
Acompanhar hábitos de verdade pede mais que uma lista de tarefas: pede métricas calculadas sobre o histórico, visões por dia, semana, mês e ano, e dados que continuem seus — sem depender de um serviço em nuvem de terceiros.
A solução
O front é React 19 com Next.js 15 e Tailwind 4, com animações em Framer Motion, arrastar e soltar com dnd-kit e gráficos em Recharts. O backend é uma API em Go escrita só com a biblioteca padrão, persistindo num arquivo JSON — e o motor de métricas (streaks, metas, finanças com recorrências projetadas) foi portado para o Go, de modo que o cálculo vive junto dos dados.
Funcionalidades
- Check-ins com streaks, recordes e insights automáticos
- Heatmap anual e evolução mensal de conclusão
- Metas com progresso e ordenação própria
- Finanças com receitas, despesas e recorrências projetadas
- Temporizador, pomodoro e cronômetro com presets
- Busca global, seletor de mês que filtra todo o app e temas
Arquitetura
O app é dividido em contexts de dados e de temporizador, páginas por rota no App Router e uma camada de storage que fala com a API Go por HTTP. A lógica de métricas fica em módulos puros e testados (Vitest no front, go test no back), separados da interface — a mesma regra roda idêntica nos dois lados.
Screenshots




Desafios & aprendizados
O desafio central foi manter o motor de métricas idêntico em TypeScript e em Go — cada regra de streak e recorrência precisou de testes espelhados nos dois lados. No caminho, o projeto virou também um exercício de refino de UX: relógio que sincroniza no minuto cheio, foco devolvido ao gatilho ao fechar diálogos e um sistema de tokens de design que sustenta os dois temas.