ai video
live · early stage

demo42

antes chamado MyJourney

Demos de produto narradas, sem perder um dia.

Você informa uma URL e o que quer mostrar. O demo42 explora o produto num navegador real, com cursor visível, narra cada cena e devolve um MP4 pronto para compartilhar. Sem roteiro, sem gravação manual, sem editor.

Ninguém escreveu roteiro, desenhou storyboard ou abriu um editor. No fim, o tour preenche o formulário de contato por conta própria: estava ali, e era o próximo passo natural para quem assiste.

Deep diveos bastidores, em detalhe
01

Por que existe

A GemLab toca vários projetos ao mesmo tempo, e todos mudam de uma semana para a outra. Quando alguém pergunta como está um deles, a resposta honesta é compartilhar a tela e clicar junto.

Gravar uma demo de verdade resolve isso uma vez: roteiro, take, erro no meio, regravar, cortar, subir. Um dia inteiro de alguém. No deploy seguinte, a tela mudou e a demo envelheceu. Multiplique por vários projetos e fica claro por que ninguém regrava.

Demo gravada à mão
  • roteiro, takes e edição
  • um dia inteiro de alguém
  • envelhece no próximo deploy
Demo com o demo42
  • uma URL e uma descrição
  • alguns minutos, sem horas de ninguém
  • regravada quando a tela muda
A tese

Quando uma demo custa o dia de alguém, é um evento. Quando custa centavos, vira artefato de build.

A interface mudou? Regrava, como rodar a suíte de testes depois de um commit.

02

Como funciona

Um formulário com a URL e a descrição do que mostrar. Alguns minutos depois, um vídeo na galeria. No caminho:

  1. 01

    Explorar

    O planner navega pelo site num navegador real, lê e testa antes de prometer uma cena. Se o plano mostra a busca, é porque ele digitou nela e viu o autocomplete responder.

    ia
  2. 02

    Planejar

    Escreve o plano: os beats do tour, em JSON. Nunca código.

    ia
  3. 03

    Aprovar

    O plano para e espera uma pessoa. Planejar é rápido e barato; gravar prende um navegador e um encode do ffmpeg por vários minutos.

    pessoa
  4. 04

    Compilar

    Um compilador escrito pelo time transforma o JSON num script Playwright.

    código
  5. 05

    Gravar

    O vídeo sai do screencast do Chromium via CDP, um frame a cada pintura da página. O cursor é um elemento DOM injetado e animado: input sintético não tem ponteiro.

    código
  6. 06

    Narrar e montar

    A narração vira voz, o apresentador ganha rosto e lip-sync, e o ffmpeg monta o corte com trilha e marca d'água.

    ia
    código
  7. 07

    Checar e publicar

    Quatro gates de qualidade decidem se o vídeo vai para a galeria.

    código
Exemplo real

O plano que o demo42 escreveu para o Mother

7 beats · 58 s
  1. 01establish
  2. 02survey
  3. 03traverse
  4. 04demonstrate
  5. 05reveal
  6. 06traverse
  7. 07close
Mission Control do Mother, com o cursor desenhado pelo demo42 sobre o PR #1 do próprio demo42
establish · Mission Control, a visão diária do trabalho aberto
Work Feed do Mother com a aba All ativa e gates de vários projetos
reveal · o trabalho da conta inteira aparece de uma vez
“O loop fecha no Mission Control, onde o próximo gate aparece assim que seu agente abre um pull request.”

A narração que o planner escreveu para o último beat. Ele achou o loop do produto e fez dele o loop do tour, sem que ninguém pedisse. E o card sob o cursor é o PR #1 do próprio demo42: o Mother revisa o demo42 enquanto o demo42 grava a demo do Mother.

Quatro gates antes de publicar

Um job pode terminar com sucesso e não valer nada. Cada gate nasceu de um vídeo que passou em tudo e não servia.

shapegate 1

A validação do compilador: um plano ruim vira erro de validação, nunca erro de sintaxe.

composiçãogate 2

É estruturalmente uma demo: abre estabelecendo, fecha num próximo passo e tem ao menos um demonstrate seguido de reveal.

movimentogate 3

Pelo menos 70% da gravação com algo se mexendo, medido por beat, a partir do vídeo.

pixelsgate 4

Detecta tela em branco e lê o texto da tela atrás de desafios anti-bot. O reCAPTCHA do google.com passava no teste de tela vazia.

Um gate mede o que pode ser medido. Se uma tela vale a pena ser mostrada, isso ainda é julgamento humano.

03

Arquitetura

Propositalmente pequena: dois processos e um banco em um único arquivo. Sem broker, sem fila externa. A fila é uma tabela; um evento é uma linha.

Servidor webgrava o job e responde
job
Banco em 1 arquivofila = tabela · evento = linha
lease · progresso
Workerpega o job e registra o progresso
SSE
grava
Navegadoracompanha o job ao vivo
argoPlaywright · CDP · ffmpeg

Qualquer processo pode cair e voltar sem que o outro perceba. O servidor grava uma linha e responde; o worker pega o job com lease; a página lê os mesmos eventos do banco.

A gravação roda sobre o argo, open source. O demo42 entrega a metade que o argo supõe que uma pessoa escreveu: olhar um site nunca visto e decidir como deve ser o tour.

04

Decisões e trade-offs

Registradas como ADRs: o contexto, o que o time decidiu e o que isso custa.

Contexto
Pedir o script Playwright direto ao modelo funciona na primeira vez. Na décima, vem um arquivo com erro de sintaxe. Ou pior: um que roda e faz algo que ninguém pediu.
Decisão
O modelo escreve um plano em JSON e um compilador do time gera o Playwright. O arquivo gerado é uma casca fina em volta de um literal; todo o comportamento vive no tour-runtime.ts, escrito à mão e testado.
Consequência
Um plano ruim é erro de validação, nunca um erro de sintaxe para alguém depurar às 3h da manhã. E o modelo não consegue dizer o que não deve: um goto só alcança a origem do tour, uma tecla só vem de um conjunto fechado, e não existe verbo para "abrir outra aba e logar em outro lugar".
Trade-off
Expressividade. Uma nova capacidade não é ajuste de prompt: é mudança no compilador e nos testes. Aqui o domínio é fechado de propósito, e o DSL vence com folga.
arquivo gerado pelo compiladorcomportamento: tour-runtime.ts
const PLAN: TourPlan = { /* ... */ };
test('tour', async ({ page, narration }) => {
  await runTour(page, narration, PLAN);
});
05

IA no processo

O único ponto com um modelo grande é o planejamento. O resto do pipeline é máquina, com nome na etiqueta, e cada peça foi escolhida por experimento, não por palpite.

EtapaQuem executaOnde roda
PlanejamentoClaude Opus + ferramentas de navegadorúnico modelo grandeAPI
Voz em inglêsKokorolocal
Voz em portuguêsminimax-speech-02-hdRunPod
Retrato do apresentadorFLUX.1-devRunPod
Lip-syncInfiniteTalkRunPod
Gravação e montagemPlaywright, CDP e ffmpeglocal

Num dos primeiros tours, o planner fez 18 chamadas de exploração para sete beats que passaram na validação de primeira.

Como o time escolheu

O time GemLab fez a pesquisa como trabalha no laboratório: com Claude Code.

Com ele, o time levantou modelos abertos e comerciais, escreveu os relatórios que basearam a escolha e rodou os experimentos que geraram os números ao lado. Cada experimento virou um caderno de laboratório no repositório, com custos e medições.

Lip-sync · WAN 2.6 × InfiniteTalkmovimento da boca nas pausas · menor é melhor
WAN 2.60,56
InfiniteTalk0,28

O WAN 2.6 não se cala: segue "mastigando ar" nas pausas. O InfiniteTalk é guiado pelo áudio, então a boca para quando a voz para, em qualquer idioma.

Fora antes do teste: Wav2Lip, MuseTalk e LatentSync, que dublam vídeo existente. Aqui só existe um retrato parado.

EN ≠ PT

Um tour em outro idioma não é tradução: o plano é refeito do zero no idioma de destino. Em português, o planner achou um caminho pelo site que o tour em inglês nunca tocou.

06

Método e próximos passos

O velho conselho de Kent Beck: make it work, make it right, make it fast. Fazer funcionar foi o primeiro passo; o demo42 está no meio da lista.

feito ✓

make it work

O caminho ponta a ponta funciona desde o primeiro dia: URL e descrição entram, um MP4 narrado sai.

estamos aqui

make it right

Qualidade: gates antes de publicar, movimento em todo beat e limites que o modelo não atravessa.

próximo

make it fast

Regravar e trocar partes do vídeo (uma cena, uma narração, uma marca) sem pagar o caminho todo de novo. E tours mais longos: hoje o teto é de um minuto.

07

Time

100% GemLab.

Do produto à pesquisa de modelos, o demo42 foi construído de ponta a ponta pelo time da GemLab, o laboratório AI-first da Codeminer42.

produtoarquiteturacompilador e runtimepesquisa de modelosgates de qualidade

Pronto para construir software de verdade?

Conte em que estágio está sua ideia ou produto. A GemLab avalia o contexto e indica a melhor rota para transformar potencial em produto operacional.

Levar meu produto para a bancada