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
/blogem 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-casamentolendo 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
/chatou 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)