← Voltar aos projetos
SaaSFintechAutomação

ZyfinBot — SaaS de finanças pessoais global

Empresa
Kawasaki Web Soluções
Função
Fundador / Engenheiro Líder
Tempo na empresa
jun. de 2026 — Atual

Problema

O controle de gastos domésticos falha quando o registro exige abrir uma aplicação, navegar até um formulário e preencher vários campos. O WhatsApp oferece um ponto de entrada de menor atrito em um canal já utilizado pelas pessoas, enquanto famílias internacionais também precisam de relatórios multi-moeda e de uma forma segura de colaborar com consultores financeiros.

Abordagem

Projetei o ZyfinBot como uma aplicação Ruby on Rails modular cujo webhook do WhatsApp roda no mesmo processo, reduzindo a complexidade operacional inicial enquanto o produto evolui para uma plataforma financeira multi-tenant com clientes Hotwire e Flutter.

Principais decisões de arquitetura:

  • Integrei somente a API oficial WhatsApp Cloud da Meta, evitando clientes não oficiais e o risco de bloqueio da conta.
  • Implementei um parser determinístico antes de introduzir uma LLM, interpretando registros abreviados como 02/06 Mercado Alimentação 130,28 e usando controles interativos como fallback testável.
  • Armazenei valores monetários em unidades inteiras com snapshots de câmbio, impedindo que relatórios históricos mudem quando as cotações variam.
  • Projetei o isolamento de um tenant por família, começando com SQLite embarcado no MVP e mantendo um caminho de migração para PostgreSQL auto-hospedado com Row-Level Security.
  • Projetei a autenticação considerando a perda do celular, com e-mail, senha e 2FA obrigatório via WebAuthn ou TOTP, sem depender de SMS ou OTP pelo WhatsApp.
  • Defini um caminho de infraestrutura de ponta a ponta desde um cluster k3s em Raspberry Pi atrás do Cloudflare Tunnel até a futura infraestrutura de nuvem provisionada por Terraform, com deploys via Kamal 2 e publicação de imagens no GHCR pelo GitHub Actions.

Impacto

  • Entreguei a fundação local da versão 0.1.0 com verificação HMAC do webhook, processamento idempotente de mensagens, parsing e persistência de despesas cobertos por golden tests em RSpec.
  • Dividi a entrega em fatias verticais publicáveis de forma independente, cobrindo ingestão, orçamentos, relatórios, PostgreSQL/RLS, interface web e Open Finance.
  • Modelei o Open Finance de forma independente de provedores, permitindo usar Pluggy no Brasil e GoCardless ou TrueLayer na Europa sem migrações de schema.

Stack técnica

Ruby on RailsHotwireFlutterPostgreSQLWhatsApp Cloud APITerraformKamalk3s