Build in Public
Lançando o Relay: do gatilho ao deploy
A história de como tirei um SaaS de automação do zero ao primeiro cliente pagante em quatro meses, construindo em público — as decisões certas, os becos sem saída e o que eu faria diferente.
Quatro meses atrás o Relay era um arquivo README.md e uma ideia teimosa: automação de fluxos que qualquer time de produto conseguisse montar sem chamar a engenharia. Hoje ele tem cliente pagante. Este post é o registro honesto do caminho.
O problema que eu queria resolver
Todo time de produto repete tarefas: avisar o suporte quando um plano cai, abrir um card quando um pagamento falha, sincronizar dados entre ferramentas. As soluções existentes ou eram caras demais ou exigiam um engenheiro de plantão. Eu queria algo no meio — do gatilho ao deploy em minutos.
Escolhendo a stack certa
Resisti à tentação de microserviços. Comecei com um monólito modular bem organizado, porque a velocidade no início vale mais que a escala que eu ainda não tinha.
- Next.js para a interface e o editor de fluxos
- Postgres como fonte da verdade, com filas em Redis
- TypeScript de ponta a ponta, sem desculpas
A pergunta não é "qual a melhor stack", e sim "qual stack me deixa lançar amanhã sem me arrepender em seis meses".
O motor de execução
O coração do Relay é o executor de jobs. Cada passo de um fluxo vira um job idempotente, com retries e timeout explícitos. A regra de ouro:
// todo job precisa ser seguro pra rodar duas vezes
async function run(step: Step, ctx: Context) {
if (await ctx.alreadyRan(step.id)) return;
await step.execute(ctx);
await ctx.markRan(step.id);
}
Parece óbvio. Não é. A primeira versão duplicava cobranças quando um webhook chegava duas vezes — um erro que custou caro em confiança.
Construindo em público
Postei cada semana o que funcionou e o que quebrou. O resultado: o primeiro cliente veio de uma thread sobre idempotência em filas, não de um anúncio. Quem te acompanha apanhando aprende a confiar em você resolvendo.
O que eu faria diferente
Teria cobrado antes. Passei tempo demais polindo o onboarding para um produto que ninguém tinha validado com a carteira. Cobrar cedo não é ganância — é o teste mais honesto de que o problema dói de verdade.
O Relay está longe de pronto. Mas saiu do README.md, está no ar e tem alguém pagando por ele. Por enquanto, é o suficiente.