Caipira Plus

Contexto e problema
Avicultores de pequeno e médio porte acompanham a granja em planilhas e cadernos. O Caipira Plus junta tudo num app por assinatura: lotes, coleta de ovos, mortalidade, tarefas, clima e relatórios de desempenho. Está em desenvolvimento, com cerca de 40% do planejado pronto. O código é fechado; aqui ficam as decisões por trás dele.
Decisões técnicas
Por que as permissões ficam no banco
Cada granja tem membros com papéis (dono, admin, funcionário, convidado), e a regra de quem vê o quê fica no Postgres, com Row Level Security. O banco é o único lugar que decide permissão: um erro na tela não vaza dado de outra granja.
Por que o clima vem pelo CEP
A previsão vem de uma API gratuita e é localizada pelo centro do CEP, sem pedir GPS. Granjas no mesmo CEP compartilham a mesma previsão. O clima é guardado dia a dia para, mais tarde, cruzar com a produção; hoje ele já gera alertas de estresse térmico.
Por que o webhook do Stripe não confia na ordem dos eventos
Os eventos de pagamento podem chegar fora de ordem ou repetidos. Em vez de aplicar cada evento, o webhook relê o estado atual da assinatura no Stripe e processa cada evento uma vez só.
Como eu desenvolvo com IA
O trabalho segue um fluxo guiado por especificação, com as Skills do Matt Pocock: uma entrevista sobre a ideia (grill), a especificação, a quebra em tickets, a implementação e o code review; às vezes, wayfinder e retrospectiva. O que fazer e o que está pronto fica nas issues do repositório, e todo commit sobe para um PR no GitHub, onde eu aprovo ou não. Assim dá para retomar o trabalho de qualquer ponto.
Desafios
- 01Ser legível no sol: o app é usado pelo celular, dentro do galpão.
- 02Não abusar da API de clima: a previsão fica salva no banco e serve de cache, e granjas no mesmo CEP compartilham a mesma consulta. É uma filosofia que sigo em todo o sistema: reduzir uso e custo guardando a informação que já foi buscada.
Resultado
- 16
- etapas do MVP entregues em julho de 2026
- 34
- linhagens genéticas no catálogo
- ~40%
- do planejado pronto
Próximo case
Grana →