Dyto
Plataforma multi-tenant de atendimento no WhatsApp que estou construindo com dois sócios: onboarding de números, webhooks e entrega confiável de mensagens.
Telas do projeto




Problema
Cada cliente precisa de um número, de um consentimento OAuth e de isolamento real de dados — sem perder mensagens quando a Cloud API ou o próprio sistema falha no meio do caminho. É o tipo de problema em que o caso excepcional vira regra se ninguém o tratar como caso de domínio.
Visão geral
Produto em desenvolvimento, com versão publicada e código fechado — é um serviço comercial que fundei com dois sócios, então o repositório não é público. O Dyto opera a WhatsApp Cloud API em modelo multi-tenant: onboarding via Embedded Signup, webhooks de entrada, envio confiável e um painel operacional. Um outbox transacional garante que o evento de domínio e a publicação externa nasçam na mesma transação, de modo que a mensagem não some da fila antes do commit.
Decisões técnicas
- Tenant como invariante de toda query e comando: isolamento no domínio, não só no middleware, porque middleware não te salva quando alguém esquece o filtro.
- Embedded Signup para o cliente conectar o WABA sem copiar token nenhum na mão — o fluxo de OAuth é parte do produto, não um detalhe de integração.
- Outbox transacional para webhooks e envios: o evento de domínio e a publicação externa nascem juntos, e a mensagem só sai da fila depois do commit.
- React Query no painel operacional, alinhado aos casos de uso do backend em vez de inventar um segundo estado no cliente.