Ir para o conteúdo principal

StackBrief: infraestrutura de dependências com lockfile

Desenvolvedor de produto e full-stack · 2026 · Lançamento de fim de semana, jul 2026 · 4 min de leitura

Produto de dependências em produção: resumos diários alinhados ao lockfile, em vez de mais um feed de CVE ou de notícias.

Interface do produto: StackBrief: infraestrutura de dependências com lockfile
Caminho rejeitado: Lançar mais um resumo de notícias e competir com newsletters grátis

Visão geral

Queria notas de release alinhadas às versões que eu rodo, sem viver em feeds. A primeira ideia era um compilado de novidades filtrado por nomes de tecnologias. Isso parecia fraco diante de newsletters grátis, então mantive o pipeline e mudei a pergunta do produto: este release afeta o lockfile? Construí um app Next.js na Vercel e um pipeline noturno no Windmill em um VPS; Stripe, Telegram, idiomas e critérios de continuar ou parar vieram depois do lançamento de fim de semana. Mesmo pipeline, trabalho de infraestrutura, não mais um resumo de notícias.

Problema

Ferramentas de CVE respondem “isso é vulnerável?”. Resumos de notícias respondem “o que está em alta?”. Nenhuma responde “este release afeta as versões que eu rodo?”. O Dependabot gera muito ruído. Quem mantém um produto pequeno ainda é surpreendido por breaking changes.

Restrições

  • O GitHub App pode pedir permissão de leitura de conteúdo; o produto só busca package.json e lockfile na raiz.
  • Uma stack por conta na v1.
  • Custo de LLM tem que caber em R$29/mês ou US$9/mês: filtrar e compartilhar cache antes do Gemini.
  • Secrets ficam fora do git; a automação roda em workspace isolado.
  • Sem scanner CVE, WhatsApp ou plano Team na v1.
  • Locale e moeda do Stripe precisam combinar (BRL para pt-BR, USD para en/es).

Arquitetura

Next.js 16 na Vercel para autenticação, primeiro acesso, interface de resumo e cobrança. Supabase com RLS. Pipeline Bun no Windmill à noite: ingestão, filtro, correspondência de versão, geração e entrega. O primeiro acesso pode disparar um resumo sob demanda para o primeiro resumo não depender só do cron noturno. O checkout escolhe os preços do Stripe de acordo com o idioma/moeda.

Decisões principais

Transformar o compilado de novidades em resumos alinhados às versões, em vez de recomeçar

Motivo

Mais um resumo de notícias parecia difícil de defender contra newsletters grátis. O caminho de ingestão, filtro e entrega já existia; só o trabalho mudou.

Alternativas consideradas
  • Lançar mais um resumo de notícias e competir com newsletters grátis
  • Descartar o build de fim de semana e recomeçar do zero

Cruzar versões do lockfile, não só nomes de tech

Motivo

Cruzar só por nome inventa ferramentas parecidas e quebra confiança. Um dia sem novidades só vale se as versões forem reais.

Alternativas consideradas
  • Tags manuais só (mantido como fallback)
  • Varrer o repositório inteiro (rejeitado)

Cachear saída do Gemini por tech@version

Motivo

Sem cache compartilhado, o custo escala com usuários. Com ele, o mesmo texto de release é reutilizado.

Alternativas consideradas
  • Gerar por usuário toda noite

Manter preço de lista R$29; deixar desconto de lançamento de fora

Motivo

Sem tráfego, desconto permanente é sobretudo aparência. O preço ficou como hipótese até haver uso real.

Adicionar EN/ES e USD no dia depois do lançamento

Motivo

Cobrar só em reais limita o alcance cedo demais para uma ferramenta feita para desenvolvedores. Mesmo trabalho do produto, segunda moeda.

Escrever critérios de continuar ou parar antes de existirem usuários pagos

Motivo

Mantém o escopo honesto. Força um olhar curto em ativação e conversão do período de teste, em vez de lançar funcionalidades indefinidamente.

Corrigir redirects de sessão e autenticação depois da auditoria de produção

Motivo

Login e primeiro resumo falham mais por cookies, OAuth e WAF do que pelo texto da página inicial.

Stack

  • Next.js 16 (App Router) + [locale] routing
  • React / TypeScript
  • Tailwind CSS 4 + shadcn/Radix
  • next-intl (PT-BR, EN, ES)
  • Supabase (Auth, PostgreSQL, RLS)
  • Windmill (self-hosted, Bun/TS)
  • Google Gemini Flash-Lite
  • GitHub App (manifests only)
  • Telegram Bot API
  • Stripe Checkout / Portal / Webhooks (BRL + USD)
  • Vercel
  • PostHog
  • Resend (optional weekly email)

Impacto

Resultado do produto Fluxo pago em produção em stackbrief.erbsu.com
O que falta no mercado Correspondência de lockfile, entre scan de CVE e resumo de notícias
Custo de LLM Cache Gemini compartilhado por tech@version
Lançamento comercial PT-BR/EN/ES · checkout BRL/$ · teste de 14 dias
Corte de escopo v1 Sem CVE / WhatsApp / planos Team

O enquadramento de resumo de notícias caiu antes do lançamento. O mesmo pipeline de ingestão agora responde a uma pergunta de infraestrutura: este release afeta as versões que você roda? O fluxo completo (primeiro acesso → primeiro resumo → período de teste no Stripe) está em produção, sem CVE, WhatsApp ou planos de agência. Critérios de continuar ou parar decidem o próximo corte com base em ativação, não em vontade de adicionar funcionalidade.

Aprendizados

  • Pesquisa deve desafiar a ideia, não ditar preço de fachada. Prefira um teto claro em USD a um desconto permanente sem tráfego.
  • O primeiro resumo alinhado ao lockfile importa mais do que polimento ou idiomas extras.
  • WAF, configuração do Stripe e redirects OAuth ficam no caminho até a primeira tela útil.
  • Critérios de continuar ou parar escritos cedo são mais fáceis de manter do que os inventados depois de se apaixonar pelo build.
  • Deixe claro o que a permissão do GitHub App permite e o que o produto de fato consulta.
  • Internacionalização sem moeda correspondente fica incompleta.

Capturas do produto

Em produção em stackbrief.erbsu.com. Telas do app logado (PT-BR).

Resumo do dia

Painel do StackBrief com o resumo de dependências do dia e um item acionável
Resumo do dia: item com ação sugerida e por que isso importa para esta stack.

Stack

Configuração de stack no StackBrief com conexão GitHub e seleção manual
Stack: caminho do lockfile no GitHub (preferido) ou lista manual de tecnologias.

Canais

Configuração de canais no StackBrief com Telegram e e-mail semanal opcional
Canais: o painel é o principal; Telegram e e-mail semanal são opcionais.

Cobrança

Tela de assinatura do StackBrief com planos mensal e anual durante o período de testeCheckout Stripe da assinatura StackBrief Pro mensal em reais
Assinatura mensal ou anual (o idioma define BRL ou USD). O Stripe Checkout cobre cartão e Apple Pay; o portal do cliente, mudanças depois.

Arquitetura

Painel na Vercel (Next.js). Motor noturno no Windmill (VPS). Supabase compartilhado com RLS. No primeiro acesso dá para gerar um resumo na hora, sem esperar o cron da noite.

O que cortei

Scanner de CVE. WhatsApp. Planos Team e Agency. Preço baixo permanente sem tráfego. Promessas infladas de ROI na landing. Cortei o que saía da pergunta do produto: este release da dependência afeta uma versão que o seu projeto já usa?