src/app/mapa-interno (e o link no rodapé) antes de lançar de vez.Mapa do Portal de Autonegociação
Pra quem está se perdendo entre Vercel, Supabase, DigitalOcean e Cobransaas: aqui está o que é cada peça, o que o portal já faz, e quanto tudo isso custa.
Como as peças se encaixam
O cliente final só vê um site. Por trás, quatro serviços de empresas diferentes conversam entre si:
Cliente (navegador) │ ▼ Vercel ── roda o site Next.js (portal + /admin) e o código do servidor │ │ │ consulta dívida, simula, fecha acordo │ login da equipe, KPIs ▼ ▼ DigitalOcean (proxy) ──► Cobransaas (Celcoin) Supabase (Postgres + Auth) repassa com IP fixo CRM de cobrança banco de dados próprio
O proxy na DigitalOcean existe só porque o Cobransaas só aceita chamadas vindas de um IP cadastrado, e a Vercel não tem IP fixo no plano atual — é a solução mais barata encontrada (ver STATUS.md pra comparação com as alternativas descartadas).
Quem hospeda o quê
Vercel
Grátis (Hobby) hoje
Hospeda o site inteiro (portal do cliente + painel /admin) e roda o código de servidor (consultas, simulações, fechamento de acordo).
Supabase
Grátis (Free) hoje
Banco de dados (bloqueio de tentativas, eventos, perfis da equipe) e login do painel /admin. O portal do cliente não fala com o Supabase diretamente — só o servidor.
DigitalOcean
US$6/mês
Um servidor pequeno (droplet) rodando só um proxy (Caddy), que repassa as chamadas do portal pro Cobransaas com um IP fixo cadastrado lá.
Cobransaas (Celcoin)
Contrato à parte
CRM de cobrança de terceiros — é de onde vêm as dívidas reais, as simulações de acordo, e onde o acordo é efetivado de verdade (vinculante). Não é hospedado por nós.
Registro.br
R$50/ano
Domínio próprio, rgosolucoes.com.br.
GitHub
Grátis
Código-fonte, histórico de decisões (STATUS.md) e deploy automático pra Vercel a cada push.
O que o portal já faz
Portal do cliente (página inicial)
- Consulta por CPF + data de nascimento, com bloqueio após 3 tentativas erradas (15 min).
- Mostra a dívida em aberto e simula condições de pagamento: à vista (prazos até D+5) e parcelado. O parcelado é calculado em segundo plano enquanto o cliente vê o à vista.
- No parcelado, o cliente pode escolher a data da entrada e ajustar o valor da entrada dentro da faixa do plano (mínimo e máximo vêm da política do Cobransaas; maior reduz as parcelas, menor aumenta). O campo acompanha o plano marcado. Fora da faixa, o portal avisa e usa o mínimo ou o máximo.
- Aceite do acordo (à vista ou parcelado) com confirmação explícita antes de criar algo real e vinculante.
- Boleto em PDF com código de barras copiável; segunda via ao revisitar; lista de parcelas pagas/pendentes de um acordo parcelado.
- Se o cliente já tem acordo em andamento, mostra o acordo — nunca oferece fechar um segundo.
- Dívida com menos de 65 dias de atraso ("fase de fatura", sem integração com a RPE ainda): em vez de simular, mostra uma mensagem direcionando o cliente pro app Clube Condor — paliativo até essa integração existir. As telas de pagamento dessa faixa (total, parcial, parcelamento e adiantamento de compras) já têm mockup pronto, usado pra pedir a API à RPE.
Painel da equipe (/admin)
- Login por e-mail e senha (Supabase Auth), com recuperação de senha por e-mail.
- Tela Saúde da integração (só admin): mostra quando o Cobransaas limitou (erro 429, o limite é de 10 chamadas por segundo) ou falhou, por dia, por hora e por rota, pra decidir com dados se vale reduzir chamadas ou criar fila.
- Tela Consulta de CPF (só Master): mostra o que o Cobransaas devolve pro cliente e o que o portal exibiria — pra investigar caso a caso sem mexer em código.
- Tela de Usuários (só pra quem é admin) pra criar conta direto (com senha provisória) ou convidar por e-mail, sem mexer no Supabase. O Master não pode ser rebaixado nem removido por outro admin, e só um Master nomeia outro.
- KPIs de Visão geral, Jornada do cliente e Acordos, com período de 7/30/90 dias, mês/ano ou datas livres e comparação com o período anterior (Visão geral, Acordos e Jornada), incluindo volume × caixa (à vista inteiro + entrada do parcelado), desconto concedido, conversão por faixa de atraso (e filtro por faixas de atraso — somáveis e livres, ex.: 66 a 90 — em Visão geral, Jornada e Acordos), fase de fatura, falhas ao fechar e tempo do boleto.
- Perfis por empresa: analista, gestor, admin.
Custos — hoje e se crescer
| Serviço | Custo atual | Se crescer |
|---|---|---|
| Domínio (Registro.br) | R$50/ano | Mesmo valor, renovação anual. |
| Vercel | Grátis (Hobby) | Pro (US$25/mês) antes do lançamento: o Hobby não permite uso comercial, mesmo com pouco tráfego. O volume estimado (~10 chamadas ao servidor por sessão de cliente) cabe no Pro. |
| Supabase | Grátis (Free) | Pro (US$25/mês) recomendado antes do lançamento, mas não por volume: o Free não tem backup e pausa o projeto após uma semana sem atividade, e o portal gera boletos. O volume de eventos é pequeno (~3,5 linhas por sessão, poucos MB por mês). |
| DigitalOcean (proxy) | US$6/mês | Mantém: é só um proxy leve, o volume nem chega perto do limite da VPS. O risco é ele ser um ponto único de falha: vale um monitor de disponibilidade e o backup do droplet (cerca de 20% a mais, ~US$1,20/mês). |
| Cobransaas (Celcoin) | Fora deste mapa | Contrato comercial separado, não controlado por este projeto. |
| Manutenção e suporte (RGOSoluções) | R$1.000/mês, na NF mensal | Escopo a definir por escrito: correções, segurança (patches do servidor do proxy, atualização de dependências), monitoramento e até N horas de ajustes por mês. Integração com a RPE, webhook de pagamento e telas novas ficam à parte. |
No radar, ainda sem custo definido: envio automático de SMS/e-mail pro cliente quando um acordo é fechado — ideia levantada, sem fornecedor escolhido ainda.
Os valores em dólar são os de lista que a equipe conhecia; confirmar nos sites de cada serviço antes de contratar.
Volumetria e o limite do Cobransaas
Acordos gerados em todos os canais: 6.783 em setembro e 2.638 em outubro até o dia 13 (cerca de 6,5 mil por mês). Há ainda cerca de 13 mil pagamentos nas faixas B e C (fase de fatura), que dependem da integração com a RPE e não entram nas contas abaixo. A parte que o portal vai pegar depende da adesão; três cenários:
| Fatia do portal | Acordos/mês | Chamadas ao Cobransaas/mês | Média | Pico estimado |
|---|---|---|---|---|
| 10% | 650 | ~59 mil | 0,1/s | ~1/s |
| 30% | 1.950 | ~178 mil | 0,3/s | ~3/s |
| 100% | 6.500 | ~590 mil | 0,9/s | ~9/s (perto do limite) |
Premissas (estimativas, não medições): 3 sessões de cliente por acordo fechado, ~22 chamadas ao Cobransaas por sessão e ~25 a mais ao fechar, 176 horas úteis por mês e pico de 10 vezes a média.
- O gargalo é o limite de 10 chamadas por segundo da API do Cobransaas, não a nossa infraestrutura. Hoje o espaçamento entre chamadas vale só dentro de cada instância da Vercel; várias instâncias juntas passam do limite e recebem erro 429 (o código tenta de novo, até 4 vezes).
- Antes de passar de ~30% de fatia, ou de qualquer disparo em massa (SMS ou WhatsApp), reduzir chamadas (o parcelado usa 12 hoje; vale testar 2) ou cachear a simulação por alguns minutos, e só então uma fila compartilhada entre instâncias.
- Pendente: perguntar ao Cobransaas se o limite é por aplicativo, por IP ou por conta, e se pode ser ampliado (a SmartNX pode dividir o mesmo limite).
Pra mais detalhes técnicos e o histórico de decisões, ver README.md e STATUS.md no repositório.