GoVibee
Produto digital completo, da ideia à produção: app Android e web, painel de parceiros, API, infraestrutura e operação. No ar em govibee.com.br, com painel em parceiros.govibee.com.br e landing de captação em seja.govibee.com.br. Construído sozinho de julho a outubro de 2026: ~500 commits em 6 repositórios e ~450 testes automatizados.
Problema
Todo fim de semana, em Juazeiro (BA) e Petrolina (PE), alguém pergunta: "qual a boa hoje?". A informação sobre festas, bares e shows fica espalhada em stories que somem em 24 horas, grupos de WhatsApp e cartazes. Agregadores nacionais ignoram a cena local.
Solução
Um guia hiperlocal de vida noturna e eventos que junta os dois lados desse mercado:
- Quem sai descobre o que rola hoje, no mapa, com horário, preço, classificação etária, lineup, rota até o local e um chat ao vivo com quem vai.
- Quem produz (bares, produtores, artistas e agências) publica de graça, aparece para quem já quer sair e acompanha números reais de interesse: visualizações, rotas traçadas, cliques no ingresso e de quais cidades vem o público.
- Modelo de negócio B2B: assinatura de parceiro, impulsionamento de eventos ("turbinar") e destaque de artistas, com oferta de lançamento para os primeiros parceiros ("Fundador").
Papel
Concebeu e construiu o produto de ponta a ponta: produto e UX; app, painel e API; banco de dados e modelagem; infraestrutura, deploy e observabilidade; segurança e LGPD; landing de vendas e analytics; e a precificação, junto com a análise de negócio.
Arquitetura
Polyrepo (decisão registrada em ADR): um repositório por componente, com versionamento semântico e changelog próprios.
- API: FastAPI com REST e WebSocket: regras de negócio, autenticação, chat, notificações, analytics e automações.
- App: Flutter de base única, publicado como Android e como app web (PWA).
- Painel: React e TypeScript para parceiros (locais, rolês, artistas, desempenho, verificação) e para a operação (moderação, filas, parceiros).
- Infra: Docker Compose de produção, nginx, scripts de deploy, backup, restauração e monitoramento, e Terraform.
- Docs: contrato OpenAPI versionado, ADRs, roadmap e políticas.
- Landing: página de captação de parceiros, com SEO, Open Graph e medição anônima.
Decisões técnicas
O critério em todas foi a solução mais simples que resolve o problema de hoje, com o limite e a evolução anotados no próprio código.
- Contrato OpenAPI como fronteira entre API e clientes: os tipos do painel são gerados a partir dele, e um teste de contrato quebra o build se a API mudar sem atualizar a documentação.
- Latitude e longitude simples em vez de PostGIS: suficiente para "perto de mim" em escala regional e mais barato de operar.
- OpenStreetMap em vez de Google Maps, sem custo por requisição.
- Máquina virtual (EC2) em vez de ECS/Fargate: custo previsível para um MVP com uma réplica.
- Agendamento de notificações e broadcast do chat dentro do processo, em vez de fila, worker e pub/sub externos, com o caminho de evolução documentado.
Funcionalidades
- Home curada, Explorar com rolagem infinita em lista ou mapa, filtros por cidade, estilo, preço e grátis, e busca.
- Regra de domínio "a noite vira às 5h": um rolê de sexta às 23h continua sendo de sexta até a madrugada.
- Chat ao vivo por evento com moderação: denúncia com silenciamento automático, bloqueio, filtro de palavrão, anti-flood e menores fora de chat +18.
- Rolê fechado, com fila de acesso aprovada pelo organizador; favoritos, avaliações, card vertical pronto para story e links com pré-visualização.
- Push: rolê novo perto, rolê começando, local ou artista favorito publicou e resumo do fim de semana.
- Para parceiros: relatórios de interesse (série de 30 dias, ranking, leads por cidade agregados e anônimos), selo Verificado com revisão humana e pedido de impulsionamento com fila do admin.
Engenharia de produção
- Deploy em um comando por componente: pré-checagens, testes, lint e tipagem, build e publicação da imagem, migração com backup automático antes, health check da versão nova e rollback automático se falhar, testado em produção forçando uma falha.
- Sentry na API e no app (sem dados pessoais), UptimeRobot externo e um vigia na própria VM a cada 5 minutos, com alertas por e-mail.
- Backup diário cifrado (AES-256) no R2, retenção de 14 dias e teste mensal automático de restauração comparado com a produção.
- Runbook de recuperação de desastre com RPO de 24 horas e RTO de 15 minutos a 3 horas, num servidor de ~1 GB de RAM.
- gzip no nginx reduziu o download inicial do app web de ~11 MB para ~4 MB.
Segurança e LGPD
- JWT de curta duração com refresh token rotativo e revogação; rate limit por IP real atrás do proxy e trava de tentativas de login.
- Verificação de e-mail para publicar, validação de CPF e CNPJ, OAuth do Google exigindo e-mail verificado, uploads com checagem de tipo real e armazenamento privado para documentos.
- LGPD por design: perfil público só com consentimento, exclusão de conta em cascata (inclusive arquivos), analytics agregado e anônimo e descadastro de e-mail em um clique.
Dados e automações
- Analytics próprio, sem cookie nem identificador: funil do usuário, da landing e do parceiro.
- Onboarding do parceiro, relatório semanal de desempenho e resumo do fim de semana por e-mail e push, com deduplicação, janela no fuso local e modo de simulação em produção.
Números
- 6 repositórios e ~500 commits, de julho a outubro de 2026.
- ~450 testes automatizados (API 297, app 117, painel 36) e ~91% de cobertura na API.
- 42 migrações de banco versionadas e reversíveis e 6 decisões de arquitetura registradas.
- Plataformas: Android, web (PWA), painel web e landing.
Aprendizados
- Simplicidade com limite anotado escala melhor do que arquitetura antecipada.
- Produção cega é o maior risco de um produto pequeno: monitoramento, backup testado e rollback vieram antes de novas features.
- Medir antes de vender: o analytics mostrou que o gargalo era oferta (eventos cadastrados), não tecnologia, e redirecionou o foco para o comercial.
- Promessa de marketing precisa bater com o código: landing e tabela de preços foram auditadas contra a implementação, com cada divergência corrigida.
Stack
- Python
- FastAPI
- PostgreSQL
- Redis
- WebSocket
- Flutter
- React
- TypeScript
- Docker
- AWS
- Terraform
- Sentry