routely.me
7 min de leitura #meus-projetos
Se você já integrou um sistema com Stripe, GitHub, Shopify ou qualquer serviço que manda webhooks, conhece o roteiro. O evento dispara lá do outro lado, algo dá errado aqui, e você não faz ideia do que chegou. Não dá para testar no seu computador porque o provedor não enxerga o seu localhost. Para reproduzir o erro, precisa esperar o evento acontecer de novo. E, quando o seu servidor cai por cinco minutos, os webhooks daquele intervalo simplesmente somem.
O Routely nasceu para resolver exatamente isso. Ele cobre o ciclo inteiro de um webhook: receber, enxergar, testar, automatizar e reenviar. Tudo em um só lugar, sem configuração complicada.
Neste artigo eu conto o que construímos e qual problema cada peça resolve.
Uma URL pública em segundos
Tudo começa com um endpoint. Você escolhe um nome, e o Routely te entrega na hora uma URL HTTPS pública, como https://stripe-ab12cd.routely.me. É só colar no painel do provedor e pronto: tudo o que for enviado para lá fica registrado.
Cada requisição é guardada por completo, com método, headers, query string, corpo e horário. Chega de adicionar console.log no servidor de produção para descobrir o formato de um payload.
Precisa segurar o tráfego enquanto corrige alguma coisa? Dá para pausar e retomar o endpoint com um clique.
Um inspetor que mostra tudo ao vivo
O coração do Routely é o inspetor. Você vê o corpo formatado, os headers, a resposta que o seu sistema devolveu e quanto tempo levou.
Achou a requisição que interessa? Copie como cURL ou como array PHP com um clique e reproduza onde quiser. Também dá para filtrar só as que falharam, que é justamente onde mora o problema na maioria das vezes.
O túnel: webhooks reais direto na sua máquina
Essa foi uma das partes de que mais me orgulho. Testar webhook em ambiente local sempre foi chato: ou você sobe deploy a cada ajuste, ou apela para ferramentas genéricas de túnel que não foram pensadas para isso.
Com o Routely, basta um comando na nossa CLI, a routely-tunnel:
npx routely-tunnel share --subdomain stripe --port 3000
A partir daí, cada webhook que chega no seu endpoint público cai direto na aplicação rodando no seu computador. E o mais importante: a resposta que o seu app local devolve volta de verdade para quem enviou. É como se o provedor estivesse falando direto com a sua máquina.
A CLI também tem o modo tail, que mostra as requisições chegando em tempo real no terminal, com atalhos para copiar o corpo e os headers. No painel, um indicador mostra na hora quando o túnel está conectado.
Encaminhamento com novas tentativas automáticas
Nem todo mundo quer apenas olhar os webhooks. Muitas vezes a ideia é colocar o Routely no meio do caminho: ele recebe, registra e encaminha para o seu sistema.
Quando o destino está fora do ar ou devolve erro, o Routely tenta de novo automaticamente, em intervalos crescentes. Se mesmo assim não der certo, a requisição vai para uma lista de entregas esgotadas e você recebe um alerta. Nada se perde em silêncio.
Quando o seu sistema voltar, é só reenviar com um clique. Sem pedir para o provedor disparar de novo e sem montar payload na mão.
Flows: automação visual, sem código
Cada endpoint pode ter um flow: um canvas em que você arrasta blocos e desenha o caminho que cada requisição vai percorrer.
Alguns dos blocos disponíveis:
- Verificar assinatura: confere o HMAC do provedor antes de qualquer outra coisa e descarta o que não é legítimo.
- Condição e Switch: mandam cada requisição para um caminho diferente conforme o conteúdo do payload ou dos headers.
- Transformar: reescreve headers, corpo e até o método HTTP antes de encaminhar.
- Enriquecer: chama uma API externa no meio do caminho e injeta a resposta no payload.
- Deduplicar: descarta entregas repetidas dentro de uma janela de tempo. É idempotência sem escrever uma linha de código.
- Limitar vazão, Atrasar e Amostrar: controlam o ritmo e o volume do que segue adiante.
- Encaminhar: entrega para um ou vários destinos ao mesmo tempo.
O editor avisa sobre erros de montagem enquanto você desenha. Também dá para testar o flow com uma requisição de exemplo e ver, no próprio canvas, o caminho que ela percorreu. Existe separação entre rascunho e versão publicada, então você mexe à vontade sem afetar o que está rodando.
E o flow funciona também pelo túnel: a requisição passa pela verificação e pelas transformações antes de chegar na sua máquina. Você testa localmente exatamente o que vai acontecer em produção.
O simulador: não espere o provedor, dispare você
Outro ponto chato do dia a dia é depender do provedor para gerar eventos de teste. Por isso criamos o simulador, que funciona como um cliente de requisições no estilo Postman, mas pensado para webhooks.
Você monta a requisição, escolhe um dos seus endpoints e dispara. Dá para acompanhar a requisição passar pelo flow, atravessar o túnel, rodar no seu app e voltar com a resposta.
As requisições podem ser salvas em coleções. Se o provedor publica uma especificação OpenAPI, você importa o arquivo inteiro e ganha uma coleção pronta, com os exemplos de payload já preenchidos.
Métricas para saber como as integrações estão
Cada endpoint tem um painel de métricas com volume de requisições, taxa de sucesso, falhas agrupadas por causa, latência (p50 e p95) e os códigos de status mais frequentes, em janelas de 24 horas, 7 dias ou 30 dias. Também mostramos quanto da sua cota mensal você já consumiu e a projeção até o fim do mês, para evitar surpresa.
Uma API pública para automatizar tudo
Tudo o que você faz pelo painel também pode ser feito via código. A API REST do Routely permite criar e gerenciar endpoints, consultar e reenviar requisições e operar o simulador. Ela usa um token de acesso exclusivo, separado do token da CLI.
Isso abre espaço para criar endpoints automaticamente em pipelines de CI, montar ambientes de teste sob demanda ou integrar o Routely às suas próprias ferramentas internas. A documentação completa está no próprio painel, no estilo Swagger, com exemplos prontos para copiar.
Segurança levada a sério
Uma ferramenta que fica no meio do caminho dos seus dados precisa ser confiável. Alguns cuidados que tomamos:
- Cada conta só enxerga e mexe no que é seu, seja pelo painel, pela API ou pela CLI.
- Os identificadores públicos são aleatórios, então não dá para adivinhar recursos de outra pessoa.
- Os blocos de encaminhamento e enriquecimento bloqueiam destinos da rede interna, o que protege contra ataques do tipo SSRF.
- O simulador só dispara para os seus próprios endpoints, nunca para uma URL externa qualquer.
- A CLI trata o conteúdo recebido antes de exibi-lo no terminal, evitando que um payload malicioso manipule a sua tela.
Feito para ser fácil
Por trás de tudo isso existe uma filosofia: você precisa conseguir começar sozinho, em poucos minutos. Por isso investimos em detalhes que fazem diferença no dia a dia:
- Login com Google ou e-mail.
- Interface em português e em inglês.
- Central de notificações dentro do app.
- Página de novidades que mostra cada atualização da web e da CLI.
- Canal de suporte em que você pode anexar a requisição com problema, para a gente olhar exatamente o que você está vendo.
Planos para cada momento
O plano Free já inclui um endpoint, 2.500 requisições por mês, inspetor ao vivo, túnel e encaminhamento. É o suficiente para desenvolver e testar uma integração do começo ao fim.
O plano Pro libera até 15 endpoints, 100 mil requisições por mês, histórico maior, flows e o simulador. E, se quiser experimentar antes, dá para ativar um teste gratuito de 7 dias dos recursos Pro direto do plano Free, sem cartão.
Para onde vamos
O Routely começou como uma resposta a uma dor que eu mesmo sentia toda vez que precisava integrar um sistema novo. Hoje ele recebe, mostra, testa, automatiza e reenvia webhooks, do seu computador até a produção.
E estamos só começando. Se você trabalha com webhooks, crie sua conta em routely.me, aponte o primeiro provedor para lá e veja a primeira requisição chegar ao vivo. Depois me conta o que achou.