TRILHA 6

🌹 Produção, Deploy & Segurança

A engenharia de produção: sair do "rodou na minha máquina" para o "roda sozinho na nuvem, com segurança e gerando receita". Hospedar código no GitHub, executar em agenda ou por evento no Trigger.dev, proteger segredos e dados (env vars, RLS, auditoria), dar confiabilidade (logs, try/catch, retries, alertas) e monetizar com Stripe.

3
Módulos
22
Tópicos
~3h
Duração
Avançado
Nível
Progresso da trilha 0% · 0 de 22
Banner da trilha de produção: servidores na nuvem, escudo de segurança, cron e webhooks em rosa — deploy confiável
☁️ a nuvem que executa por você Módulo 6.1 GitHub & Trigger.dev Módulo 6.2 Secrets & Segurança · env vars · RLS Módulo 6.3 Confiabilidade & Monetização hospedar → proteger → dar confiabilidade e gerar receita

O caminho da trilha 6: o código sobe para a nuvem (GitHub + Trigger.dev), é blindado (segredos e RLS) e ganha robustez e monetização — o salto final de protótipo para produto.

Mapa da trilha

Conteúdo detalhado

Ilustração do módulo 6.1
6.1 ~55 min · 7 tópicos

🚀 GitHub & Trigger.dev

Os dois pilares de uma automação hospedada: o GitHub como armazenamento de código na nuvem (commit, push, histórico) e o Trigger.dev como motor de execução (sem timeout, retries, traces, alertas). Inicializar o projeto, agendar com cron e ler o dashboard.

Progresso do módulo 0% · 0 de 7
O que é:

Armazenamento de código na nuvem: o deploy puxa de lá (não da sua máquina), você acessa de qualquer lugar e tem histórico para reverter.

Por que aprender:

É o pré-requisito da hospedagem: plataformas de deploy integram direto com o repo.

Conceitos-chave:

Repo = pasta do projeto; commit = snapshot; push = enviar à nuvem.

O que é:

A ferramenta de linha de comando do GitHub (gh) autentica e conecta o projeto; o .gitignore lista o que nunca deve subir — a regra de ouro é o .env.

Por que aprender:

Um .env vazado é um segredo vazado; o .gitignore é a primeira linha de defesa.

Conceitos-chave:

gh auth login; .gitignore; segredo fora do repo.

O que é:

O motor de execução na nuvem: roda tarefas sem timeout, com retries automáticos, trace de cada passo e alertas de falha. Como um assistente confiável, não um post-it.

Por que aprender:

É o que fecha o "agentic gap" — dá visibilidade quando a IA não está mais assistindo.

Conceitos-chave:

Roda TypeScript (a IA escreve); MCP oficial; dev vs prod.

O que é:

Instalar o MCP oficial, copiar o Project ID e rodar o init — que cria o trigger.config.ts e a pasta de tasks; o dev sobe o worker local.

Por que aprender:

Com o MCP, você gerencia o projeto conversando; sem ele, cai no terminal.

Conceitos-chave:

init interativo; reiniciar após instalar MCP; Project ID.

O que é:

Um padrão de 5 campos (minuto, hora, dia-do-mês, mês, dia-da-semana) que define quando a tarefa roda. 0 7 * * * = todo dia às 7h.

Por que aprender:

É o que faz a automação rodar sem você presente — escala além do "aparecer e disparar".

Conceitos-chave:

5 campos; * = qualquer; */5 = a cada 5.

O que é:

A janela para a produção: lista de runs, traces (cada linha = um passo), payload/output, seção de schedules, queues e alertas, e dois ambientes (dev e prod).

Por que aprender:

Como a IA não está mais assistindo, o dashboard é onde você vê o que aconteceu.

Conceitos-chave:

Run = execução; trace = passo a passo; teste em dev, libere em prod.

O que é:

A disciplina de construir já preparado para deploy: o "um prompt inicial para reinar sobre todos" pede inputs fixos, saída estruturada, tratamento de erro e log desde o começo.

Por que aprender:

Em produção a IA não conserta sozinha; o que não foi pedido no prompt não vem de graça.

Conceitos-chave:

Deploy desde o 1º prompt; loop commit → push → deploy; verificar a run.

Ilustração do módulo 6.2
6.2 ~60 min · 8 tópicos

🔐 Secrets & Segurança

Como manter chaves e dados a salvo: variáveis de ambiente (local vs nuvem), .env.example e leitura via process.env, OAuth & refresh token, as regras de ouro dos segredos, Row-Level Security para isolar dados, auditoria de segurança e por que um app aberto é um risco financeiro.

Progresso do módulo 0% · 0 de 8
O que é:

O segredo fica armazenado fora do código e é injetado só na hora de rodar — então o código nunca contém a chave.

Por que aprender:

É o mecanismo que separa "o que é público" (código) de "o que é secreto" (chaves).

Conceitos-chave:

Segredo externo; injeção em runtime; código sem chave embutida.

O que é:

Localmente os segredos vivem no .env; na nuvem, no dashboard de Environment Variables (Trigger.dev/Vercel), que injeta em runtime. O Trigger.dev não lê o .env local.

Por que aprender:

Esquecer de adicionar a chave em produção é a falha que "só aparece em prod".

Conceitos-chave:

Dois ambientes (dev e prod); checar ambos; nuvem não lê .env local.

O que é:

Um .env.example lista as chaves SEM valores (seguro de commitar); o código lê os valores via process.env, nunca os escreve direto.

Por que aprender:

Documenta quais segredos o projeto precisa sem expor nenhum deles.

Conceitos-chave:

.env.example = só os nomes; process.env = leitura; nada hard-coded.

O que é:

OAuth delega acesso a um serviço (ex.: Google) sem expor sua senha; o refresh token renova o acesso sozinho. Quando o fluxo padrão falha, um script de terminal gera o token.

Por que aprender:

É como agentes hospedados acessam Sheets, Drive e Gmail sem você logar toda vez.

Conceitos-chave:

Client ID/secret; refresh token; fallback via terminal.

O que é:

As três regras inegociáveis: nunca cole chaves no chat da IA, nunca commite o .env, e rotacione/regenere chaves (idealmente chaves distintas para local e produção).

Por que aprender:

Uma chave de API é como acesso a um cartão de crédito: vazou, alguém gasta por você.

Conceitos-chave:

Chave = cartão; .gitignore; rotacionar e separar dev/prod.

O que é:

Row-Level Security: regras que vivem no próprio banco (Supabase) e impedem um usuário de ver dados de outro — mesmo que exista um bug no frontend.

Por que aprender:

É uma camada extra: o banco protege os dados independentemente do app.

Conceitos-chave:

Regra no banco; isolamento por usuário; defesa em profundidade.

O que é:

Pedir à IA que aja como especialista de segurança e verifique: rotas protegidas, nenhuma chave exposta no frontend, segredos só em env vars e RLS habilitado.

Por que aprender:

Antes de deixar o app em produção, uma auditoria explícita pega o que passou.

Conceitos-chave:

Checklist de 4 pontos; contexto limpo; corrigir o que falhar.

O que é:

Um app sem autenticação na internet pode ser disparado por qualquer um com a URL — e cada disparo consome a sua chave de IA. Você paga pelo uso dos outros.

Por que aprender:

Justifica adicionar login (Supabase) e limites de uso antes de divulgar.

Conceitos-chave:

URL pública = porta aberta; autenticação; limite de uso.

Ilustração do módulo 6.3
6.3 ~55 min · 7 tópicos

🛡️ Confiabilidade & Monetização

O que separa "funciona uma vez" de "confiável e lucrativo": o agentic gap revisitado, logging significativo, try/catch em chamadas externas, retries com backoff (vs bugs de lógica), alertas de falha, o loop humano de debug e monetização com Stripe (produto, webhook, assinaturas, freemium).

Progresso do módulo 0% · 0 de 7
O que é:

Uma vez no ar por agenda/evento, a IA não está mais lendo erros e consertando: a tarefa roda mas não se adapta sozinha. Esse é o agentic gap.

Por que aprender:

É a razão de embutir erro e log desde o 1º prompt — não dá para contar com a auto-cura.

Conceitos-chave:

Roda mas não adapta; visibilidade via plataforma; loop humano.

O que é:

Logs específicos em cada etapa relevante: "a busca retornou 429 na fonte 3", não "a tarefa falhou". A mensagem precisa ser acionável.

Por que aprender:

Log vago é inútil; log com contexto é o que torna o erro diagnosticável.

Conceitos-chave:

Específico > genérico; contexto (status, fonte); cada passo.

O que é:

Envolver cada chamada de API externa em try/catch: registrar o erro com contexto, continuar onde der, e só "lançar" (throw) em falhas críticas.

Por que aprender:

É o que faz a tarefa escrever uma linha parcial em vez de travar quando uma API falha.

Conceitos-chave:

try/catch por chamada; continuar; throw só no crítico.

O que é:

Configurar a tarefa para tentar de novo (ex.: até 3 vezes, com backoff exponencial começando em 30s). Retries resolvem problemas transitórios de API — não bugs de código.

Por que aprender:

Saber a diferença evita repetir eternamente um erro que nunca vai passar.

Conceitos-chave:

Backoff exponencial; transitório vs lógico; limite de tentativas.

O que é:

Configurar no dashboard alertas de falha por e-mail, Slack ou webhook — escolhendo ambiente e tipo de falha. Leva menos de dois minutos.

Por que aprender:

Você quer saber da quebra antes do usuário final perceber.

Conceitos-chave:

Canal de alerta; por ambiente; toda task deve ter alerta.

O que é:

A IA ainda depura, só não automaticamente: você abre o trace vermelho, copia o erro, cola na IA ("aqui está o trace que falhou, o que está errado?"), aplica o fix e re-deploya.

Por que aprender:

É o substituto da auto-cura — diagnóstico rápido, mas com um humano passando o erro.

Conceitos-chave:

Trace vermelho; copiar e colar; redeploy e testar.

O que é:

Adicionar pagamentos com Stripe e virar um SaaS freemium: tier grátis (ex.: 2 usos/dia) e tier pago (ex.: $29/mês ilimitado) via Stripe Checkout, com webhook ouvindo os eventos de assinatura.

Por que aprender:

Fecha a transição de "só um workflow" para um produto que gera receita e limita o seu custo.

Conceitos-chave:

4 chaves (publishable, secret, price ID, webhook secret); freemium; tabela de assinaturas.

← Trilha 5: Projetos Início do curso →