Pular para o conteúdo
Neto Alves
Voltar

Saturno Labs

Plataforma de marketing autônomo B2B que mede a autoridade de uma marca dentro das IAs.

Proprietário

Desenvolvimento full-stack, de ponta a ponta · menos de 45 dias de construção

packages
14
jobs cron
13

01 Problema

Marcas B2B já são citadas — ou ignoradas — por ChatGPT, Gemini, Claude e Perplexity quando alguém pergunta por uma categoria, e isso não tinha métrica, não tinha processo e não tinha quem aprovasse a peça antes de ela sair. Faltava uma plataforma que medisse Share of Voice dentro das IAs e automatizasse a resposta sem soltar orçamento de mídia sem supervisão.

02 Arquitetura

Monorepo com 14 packages e 3 apps. API em Fastify 5 com Zod validando entrada, documentando o OpenAPI e estruturando a saída do LLM a partir do mesmo schema. PostgreSQL 16 com pgvector para embeddings, Drizzle como ORM, BullMQ sobre Redis para filas e 13 jobs cron, front em React com three.js para a cena da constelação. São 60 tabelas, 240 endpoints e 1.102 casos de teste.

03 Decisões difíceis

Portão de documentação executável no CI

Um extrator deriva do código um inventário canônico de rotas, tabelas e jobs; um verificador roda 9 checks que quebram o build, incluindo um que confere se todo número afirmado na prosa da documentação bate com esse inventário. A documentação não pode mentir porque o build não deixa.

Barreira de compliance fail-closed

Toda peça passa por blocklist determinística, depois por uma IA-juíza que devolve um veredito estruturado, depois por aprovação humana. Se a vetagem falha — LLM fora do ar, timeout — a peça fica em rascunho. Indisponibilidade nunca vira aprovação por omissão.

Cinco travas entre a IA e o orçamento de mídia

Uma ação proposta pela IA só se auto-aplica se passar em cinco checagens em sequência: validação de schema, campanha em modo autopilot, kill switch desligado, elegibilidade aprovada e criativo aprovado. Falhar qualquer uma trava a ação, e o sistema nunca reativa nada sozinho.

KPIs que preferem dizer "não sei"

Quando a cobertura de bateria de provedores de IA cai abaixo de 50%, o run é marcado como degradado em vez de concluído. Um provedor fora do ar não pode aparecer no gráfico como se a marca tivesse perdido autoridade — errar por excesso de cautela é a escolha certa.

04 Stack

  • TypeScript
  • Fastify 5
  • Zod
  • PostgreSQL
  • pgvector
  • Drizzle
  • BullMQ
  • Redis
  • React
  • three.js

05 O que mudou

A pesquisa passou a vir antes da peça: o sistema olha o que já rankeia, onde o concorrente chegou e qual pergunta ninguém respondeu — e é dessa lacuna que sai o artigo, o carrossel e o post de Instagram e de LinkedIn. O artigo é publicado no blog e volta indexado para a memória do sistema, então a rodada seguinte começa sabendo o que a anterior fez. O CRM é omnichannel: a conversa que a peça gera não se perde do outro lado.