Felipe Gazolla.
← Projetos
ago 2025

Disparador.

Automação de campanhas e mensageria — prova de conceito, sem envio real.

  • Automacao
  • SaaS

As demos são interativas no desktop — no celular, veja a prévia logo abaixo.

Demo navegável com dados fictícios

Problema

Negócios precisam organizar campanhas, contatos, listas e templates de comunicação de forma centralizada.

Solução

Dashboard de campanhas, contatos, listas/segmentos, criador de campanha, templates, inbox fake, QR Code fake de conexão, relatórios e simulador de celular.

Meu papel

Concepção e desenvolvimento da prova de conceito.

Resultado

Apresentado como prova de conceito funcional com dados mockados; deixa claro que não envia mensagens reais.

Stack da demo

Next.jsTypeScriptSCSS ModulesDados fictícios

Como funciona.

Descrição do produto real (frontend + backend). A demo embutida acima é a versão de demonstração dele, com dados fictícios.

Plataforma multi-tenant de automação de campanhas e mensageria no estilo disparador de WhatsApp. Cobre a conexão de números por QR Code (sessão WhatsApp Web), contatos e listas/segmentos, templates com variáveis, um criador de campanha com controle de ritmo, janelas de pausa e horário de silêncio, agendamento, inbox bidirecional, rastreamento de entrega (enviado/entregue/lido/falhou) e relatórios. O frontend Next.js consome uma API Fastify/Prisma com filas BullMQ/Redis e integração WhatsApp via Baileys. A demonstração é uma prova de conceito — não conecta nem envia mensagens reais.

Arquitetura

  • Frontend em Next.js (App Router) consumindo uma API REST em Fastify 4 com Prisma sobre PostgreSQL.
  • Integração com o WhatsApp Web via Baileys: cada instância é uma sessão pareada por QR Code (gerado com qrcode), com status em tempo real por WebSocket, heartbeat e reconexão automática.
  • Envio em massa controlado por filas BullMQ sobre Redis: throttling configurável, janelas de pausa (break windows) e horário de silêncio (DND) para reduzir risco de bloqueio.
  • Domínio multi-tenant em ~12 entidades (Tenant, User, Instance, Contact, ContactList, Template, Campaign, Recipient, Message, Webhook, AuditLog, SettingsCredential), com papéis de acesso e status de entrega por mensagem.
  • Autenticação JWT (@fastify/jwt) com senhas em argon2; observabilidade com Pino, métricas Prometheus (prom-client) e documentação OpenAPI/Swagger; e-mail transacional via Nodemailer.

Módulos

  • Conexões: instâncias WhatsApp pareadas por QR Code, com status e reconexão
  • Contatos e listas/segmentos (com opt-out)
  • Templates de mensagem com variáveis (ex.: {{nome}})
  • Criador de campanha: instância, mensagem/template, ritmo, janelas e agendamento
  • Campanhas: rascunho, rodando, pausada e finalizada — com progresso de envio
  • Inbox bidirecional: conversas e mensagens (enviadas/entregues/lidas/falhou)
  • Relatórios: funil de entrega e volume de mensagens
  • Simulador de celular: pré-visualização da mensagem renderizada
  • Configurações, perfil, webhooks e auditoria

Destaques de engenharia

  • Integração real com o WhatsApp Web (Baileys), com pareamento por QR Code e uma sessão por instância.
  • Envio resiliente por filas (BullMQ/Redis) com throttling, janelas de pausa e horário de silêncio — estratégia anti-bloqueio.
  • Tempo real via WebSocket para status de conexão e progresso das campanhas.
  • Templates com variáveis e mapeamento por contato, para personalização em massa.
  • Rastreamento de entrega ponta a ponta (enviado → entregue → lido / falhou).
  • Multi-tenant com papéis, log de auditoria e webhooks; métricas expostas em Prometheus.

Stack do produto real

Frontend
Next.js 15React 19TypeScriptTailwind CSSTanStack QueryReact Hook FormZodreact-qr-codeAxiosdate-fns
Backend
Fastify 4Node.jsTypeScriptPrismaPostgreSQLSwagger/OpenAPI
Mensageria e tempo real
Baileys (WhatsApp Web)BullMQRedisWebSocketqrcode
Auth e observabilidade
JWTargon2PinoPrometheusVitest