2024
Agapeon
agapeon.io ↗Produto SaaS com web, app mobile, backend .NET próprio, pagamentos via Stripe e IA aplicada. Construído e operado solo, do zero à produção.
- Papel
- Co-fundador técnico · Solo engineer
- Ano
- 2024
- Stack
- React 19ViteTypeScriptTailwind CSSSupabaseCapacitor.NET 9 / C#ASP.NET CoreEF CorePostgreSQLStripeResend

§ 02 highlights
- 01Backend ASP.NET Core 9 + EF Core + PostgreSQL + Serilog; frontend React 19 + Vite + Supabase SDK; mobile híbrido com Capacitor.
- 02Stripe para cobranças recorrentes, Resend para email transacional e Google GenAI para recursos de IA no produto.
- 03Infra em Heroku (API) + Cloudflare Pages (web), Docker Compose local — entrega contínua sem depender de time de DevOps.
§ 03 case
01
Contexto
Agapeon é um produto SaaS que me coloquei como co-fundador técnico e engenheiro solo. Do dia 0 à produção — zero ao cliente pagante — sem um time. A decisão mais importante do dia 0 foi escolher stack de forma que um engenheiro sênior conseguisse sustentar todo o produto, incluindo web, mobile, backend, pagamentos, integrações de IA e infra. Evitar hype, evitar sofisticação desnecessária, preferir tecnologias que já conheço profundamente em produção.
02
Arquitetura ponta a ponta
Backend ASP.NET Core 9 com Entity Framework Core sobre PostgreSQL, em Clean Architecture. Serilog para logs estruturados, FluentValidation para contratos de entrada, BCrypt para hash de senhas, JWT + Supabase Auth como segunda camada. Frontend React 19 com Vite e Tailwind, TanStack Query para cache de dados e Zustand para estado local. App mobile via Capacitor, compartilhando 100% do código TypeScript com a web. Tudo em um único repositório com Docker Compose local, uma única fonte de verdade por domínio.
03
Pagamentos e receita
Integração Stripe.net para cobranças recorrentes, incluindo trials, upgrades/downgrades, webhook reconciliation com idempotência, e uma máquina de estados de assinatura que não depende do Stripe como fonte de verdade. Eventos de webhook são armazenados, replicados localmente e reconciliados assincronamente — o app continua funcionando mesmo se o Stripe tiver degradação. A camada de cobrança é isolada do domínio de produto; trocar de gateway (para MercadoPago, por exemplo, para LatAm) seria contido ao adapter.
04
IA no produto, não no pitch
Integração com Google GenAI para recursos específicos dentro do fluxo do produto — não um chatbot genérico. A API do modelo é consumida via camada serviço com rate limiting, cache por conteúdo semântico, fallback de modo manual quando o provider cai. Custos monitorados por usuário. O desafio não foi fazer a chamada — foi desenhar onde exatamente o modelo agrega valor no fluxo sem virar gadget, e como medir se está fazendo diferença.
05
Entrega e operação solo
Deploy do backend em Heroku (dyno .NET via buildpack), frontend em Cloudflare Pages com build de Vite, banco PostgreSQL gerenciado. Todo o pipeline de CI/CD em uma única configuração. Email transacional via Resend (do-not-reply + notificações críticas). O produto está em produção hoje com 65+ commits assinados solo, operando sem necessidade de equipe de DevOps — a escolha de stack foi validada por sobreviver ao dia-a-dia sem incidentes que pedissem rollback forçado.