Pular para o conteúdo
Voltar para todos os projetos

Meus Gastos

Controle de gastos pessoais construído em torno de um lançamento de cinco segundos. App Android e web, sobre o mesmo backend Supabase.

Ano
2026
Função
Sozinho — produto, engenharia, operação
Stack
  • React Native
  • Expo
  • TypeScript
  • Supabase
  • Next.js
Meus Gastos

O problema

Todo fim de mês some uma grana e você não sabe dizer para onde foi. Não porque a informação não exista — o app do banco tem tudo — mas porque ela chega como extrato, que é registro, não resposta.

Os apps que se propõem a resolver isso costumam falhar no mesmo ponto. Lançar um café dá seis toques e um seletor de categoria com quarenta opções, então você para de lançar cafés, e um controle de gastos com buracos é pior do que nenhum.

O que eu construí

Um controle de gastos em que o caminho do lançamento é o produto inteiro. Valor, categoria, pronto — uns cinco segundos. Todo o resto do app parte do princípio de que o registro está completo, o que só é verdade se registrar nunca parecer trabalho.

Em cima disso: gráficos que mostram para onde o mês de fato foi, e limites por categoria que avisam antes de você estourar, não depois.

Roda como app Android e no navegador, com uma conta e um conjunto de dados só. Entra com o Google em qualquer um dos dois e os mesmos dados estão lá.

Decisões técnicas

Expo e React Native, não Android nativo. Um código TypeScript gera o app Android e compartilha a camada de dados com a build web. Em projeto solo o que decide é quanta superfície eu tenho que manter, e isso cortou quase pela metade.

Supabase para auth e dados. Postgres com row-level security significa que as linhas de um usuário ficam isoladas por uma policy no banco, e não pela disciplina da aplicação. O OAuth do Google veio junto, e login com Google é a diferença entre ter formulário de cadastro e não ter.

Categoria é ícone, não dropdown. Uma grade de ícones é um toque e nenhuma leitura. Um <select> com quarenta itens é a razão pela qual as pessoas abandonam controle de gastos na segunda semana.

App web separado, não casca responsiva. A build Next.js é um projeto próprio contra a mesma instância Supabase. Celular e desktop são sessões genuinamente diferentes — o celular captura, o desktop revisa — e fingir o contrário piora os dois.

Onde está

No ar e gratuito em meusgastos.dev.br, no Google Play e no navegador.