Voltar ao início
Next.jsGoPostgreSQLOllamaDockerTelegram Bot APINginx

WheresMyMoney

Plataforma de finanças pessoais com IA local, bot no Telegram e backend em Go.

WheresMyMoney dashboard

Visão Geral

Sistema completo de gestão financeira com categorização de gastos por IA — rodando modelos locais via Ollama para preservar privacidade. Integrado ao Telegram para registrar transações por linguagem natural, com dashboard web, API REST em Go e infraestrutura própria em VPS.

O Desafio

Aplicativos de finanças pessoais existentes compartilham seus dados financeiros com serviços de IA de terceiros para fornecer categorização. Eu queria insights com IA sem comprometer a privacidade das transações — o que significava rodar os modelos de linguagem localmente.

Além disso, a fricção de abrir um app para registrar um gasto faz com que você esqueça a maioria deles. A integração precisava viver onde eu já estava: no Telegram.

Arquitetura

Frontend

  • Next.js (App Router)
  • TypeScript
  • TailwindCSS

Backend

  • Go (API REST)
  • PostgreSQL
  • Docker Compose

Camada de IA

  • Ollama (LLMs locais)
  • Processamento de linguagem natural
  • Inferência de categoria

Infraestrutura

  • VPS (hospedagem própria)
  • Nginx (proxy reverso)
  • Webhook do Bot do Telegram

Principais Decisões Técnicas

Por que Go no backend?

A API REST processa requisições simultâneas de webhooks do Telegram e consultas do dashboard web. O modelo de concorrência do Go (goroutines) lida com isso naturalmente sem complexidade de callbacks, e o binário compilado tem um consumo de memória insignificante em uma VPS pequena.

Por que Ollama para LLMs locais?

Rodar o Qwen2.5:7b localmente significa zero custos de API, nenhum dado enviado a serviços externos e controle total sobre o modelo. A imagem Docker do Ollama tornou o deploy trivial. A desvantagem é a latência de inferência (~2-3s por categorização), o que é aceitável para o registro assíncrono de gastos.