Skip to content

landing-003 — Blog post + chat embed teaser

CEO doc #7 (docs/CEO.md): canal SEO orgânico PT-BR é coluna do GTM (custo marginal zero, ranqueia em “como dividir contas casamento”, “planejamento financeiro casal” etc). CEO doc #9: blog é uma das pernas do primeiro move (waitlist + SEO + viral). Visitante chega via Google num post editorial (ex.: /blog/como-dividir-contas-no-casamento), lê o conteúdo, e no fim encontra um chat embed teaser — widget pequeno com CTA “converse com o agente sobre seu caso”, que leva direto pro chat do app (cenário 008). Anonymous-first (ADR 006 paralelo): clicar no teaser não pede signup, abre o chat como visitante.

A SEO mínima é asserção: title, description, canonical, og:* tags presentes no <head> do post. Wording editorial exato fica livre — o spec checa estrutura, não copy. O destino do teaser usa convenção de query params (?from=blog&slug=<post>) pra que o app saiba a origem (insumo futuro pra analytics / personalização do primeiro turno do chat). A stack da landing (Astro vs Next) é decidida em ADR 005 paralelo — Astro favorece blog SEO (static export, content collections), Next favorece compartilhar componentes com o app principal.

Scenario: Visitante chega no blog index e abre um post

Section titled “Scenario: Visitante chega no blog index e abre um post”
  • Given o visitante abre /blog em PT-BR pela primeira vez (sem cookie de waitlist)
  • When ele vê a listagem com pelo menos um post editorial visível (cards com título + descrição curta)
  • And clica no card do post “Como dividir contas no casamento”
  • Then a URL navega pra /blog/como-dividir-contas-no-casamento
  • And a página do post renderiza o título em <h1> e o corpo do artigo
  • And o <head> contém meta tags SEO: title, meta[name=description], link[rel=canonical], meta[property=og:title], meta[property=og:description], meta[property=og:image]

Scenario: Visitante lê o post e clica no chat embed teaser pra ir pro app

Section titled “Scenario: Visitante lê o post e clica no chat embed teaser pra ir pro app”
  • Given o visitante está em /blog/como-dividir-contas-no-casamento lendo o conteúdo
  • When ele rola até o fim do post
  • Then o ChatEmbedTeaser é visível com CTA “converse com o agente sobre seu caso”
  • When ele clica no CTA do teaser
  • Then ele navega pro chat do app (rota /chat ou similar — exato fica a critério do impl) com query params ?from=blog&slug=como-dividir-contas-no-casamento
  • And nenhum signup/login é exigido na transição (anonymous-first, ADR 006)