Pular para o conteúdo
← Todos os projetos

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

Caixa de entrada do Dyto com conversas de atendimento
Caixa de entrada do Dyto com conversas de atendimento
Campanhas de mensagens no painel do Dyto
Campanhas de mensagens no painel do Dyto
Automação com IA no Dyto
Automação com IA no Dyto
Tela de login do Dyto
Tela de login do Dyto

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.

Arquitetura

Multi-tenancyDDDModular MonolithTransactional Outbox

Tecnologias

TypeScriptNode.jsPostgreSQLWhatsApp Cloud APIOAuthWebhooksReact Query