Routine Hub
Hub de rotina self-hosted que trata o dia como uma sequência de tarefas, não como um checklist que cobra
Um aplicativo instalado no celular, servido por um mini PC de casa, que apresenta o dia como tarefas interativas e começa pelo módulo de meditação.
Motivador
Eu queria um hub de rotina que funcionasse do meu jeito, sem assinatura, sem meus dados em nuvem alheia e com liberdade para acrescentar módulos conforme a vida pedisse. O primeiro módulo escolhido foi o de meditação, porque tinha 60 áudios prontos e menos dependência de integração.
Problema
Aplicativo de hábito costuma virar fiscal. O primeiro tema visual pesava como cobrança e desmotivava o uso, e havia um erro conceitual de origem: às 00h30 o app dizia que o dia tinha sido perdido, quando a meditação da noite ainda fazia todo sentido.
Solução
Arquitetura de casca mais módulos. Cada módulo tem tabelas com prefixo próprio, rotas isoladas e vale sozinho, o que permite entregar valor por fase em vez de esperar o produto completo.
Servidor único como fonte da verdade, com regras de invariante testadas antes da lógica: substituir um áudio não avança o programa, concluir avança, e tudo que muda junto muda dentro de uma transação.
O conceito de dia de rotina, que vira às quatro da manhã em vez da meia-noite. Isso mudou o núcleo do produto, não só a interface, e obrigou a recalcular a chave de progresso e a derivar a data no servidor.
Princípio de design adotado formalmente: companheiro, não fiscal. Nada de vermelho ou alarme por ausência. Isso virou regra para visual, microcópia e para o tom das notificações da fase seguinte.
Robustez de uso real: retomada de sessão interrompida, exportação em CSV e JSON, backup diário automático e pré-carregamento dos áudios do dia.
Resultado
- O app é usado todo dia, instalado no celular, servido por uma máquina de casa em rede privada.
- Um comportamento do iOS que fazia o áudio simplesmente não tocar foi diagnosticado, documentado com o motivo e isolado em uma função pura, para não voltar.
- Cada marco terminou usável, com critério de aceite escrito antes: o módulo de meditação já servia no dia a dia desde o segundo marco, sem som de fundo.
O que eu tirei daqui
- Uma sensação vaga sobre a interface pode ser um requisito. Companheiro, não fiscal virou regra escrita e mudou visual, texto e roadmap.
- Invariante testada antes da lógica evita otimização que quebra a regra do produto meses depois.
- Mudança de conceito do domínio, como a hora em que o dia vira, é mais barata quando existe uma fonte única da verdade.
Onde a IA entrou
Cada etapa do ciclo do projeto, com o quanto a IA pesou nela.
Diagnóstico de que o app pesava como cobrança e transformação disso em princípio de design registrado.
Investigação das limitações de áudio de aplicativo instalado no iOS e das opções de entrega antes de escolher o caminho.
Documento de produto, especificação técnica, lista de marcos com critério de aceite e registro de mudança de conceito.
Casca mais módulos, fonte única da verdade no servidor, contêineres na máquina de casa e HTTPS por rede privada.
Backend em Node e TypeScript e front em React construídos com IA, com testes de invariante escritos antes da lógica de progresso.
Auditoria de código e de design como portão antes do retema, mais investigação sistemática do bug de áudio no iOS.
O produto em si não usa modelo em tempo de execução. Os áudios foram gerados por um pipeline externo de voz.
Timeline e marcos
-
Jul/2026
Fundação e catálogo
Monorepo, banco, contêineres e o primeiro app instalável, com player do dia e testes de invariante.
-
Jul/2026
Mixer de fundo
Som de fundo em loop com controles ao vivo, presets e tela que não apaga durante a sessão.
-
Jul/2026
Extras, substituição e linha do tempo
Biblioteca de extras, troca com registro e visão de progresso do programa.
-
30/jul
Robustez e dados
Retomada de sessão, exportação, backup automático e pré-carregamento dos áudios.
-
15/ago
Mudança de conceito do dia
O dia de rotina passa a virar às quatro da manhã, com a data derivada no servidor.
-
17/ago
Decisões fechadas por uso real
Tema automático por período descartado depois de usar, e o caminho da fase 2 redefinido.
Ferramentas
IA e modelos
Produto
Operação
Resumo STAR
Quer conversar sobre um desafio parecido?
Fale comigo