Skip to content

Crescimento/Onboarding: hero da home só fala de "amigos" — solo-visitante quase fecha a aba (HomeView.tsx:220-242) #43

Description

@caioross

Problema (crescimento / ativação)

A landing é a superfície de maior alavancagem — a primeira impressão de 3 segundos decide se o visitante fica ou fecha a aba. Hoje o hero da home fala exclusivamente de gente:

  • H1 (sr-only, SEO) — src/components/HomeView.tsx:220-221: "…mais rápido que seus amigos…"
  • Subcopy visível — src/components/HomeView.tsx:241-242: "Crie uma sala, manda o link pros amigos e quem digita o código mais rápido leva."

Para o visitante que chega sozinho (persona O Iniciante, §0.3), essa moldura passa a mensagem "preciso de gente pra usar isso". O relato de campo é explícito (Discussion #27):

"Meu primeiro pensamento como iniciante foi: e se eu só quero treinar sozinho? isso aqui é pra mim? Quase fechei a aba achando que precisava de gente."

É bounce-risk puro no topo do funil. O produto roda solo (engine aceita corrida sem sala; ranking global registra solo), então a copy está prometendo menos do que o produto entrega.

Por que é distinto de #25 (não é duplicata)

O #25 (In Review, PR #40) adiciona um botão "treinar →" perto do bloco "Criar sala" e cria a rota /practice — e explicitamente escopa a copy do hero para fora ("Fora de escopo: metadata/SEO da landing"). Esta issue trata só das palavras do hero (headline/subcopy) para que o solo-visitante se reconheça no primeiro parágrafo, antes mesmo de ver o botão. São mudanças complementares na mesma tela — ver "Coordenação" abaixo.

Escopo (só microcopy — zero risco de engine)

  • Ajustar o subcopy visível (HomeView.tsx:241-242) para sinalizar solo OU com amigos sem perder o gancho competitivo. Ex.: "Digite código de verdade — treine sozinho ou crie uma sala e chame os amigos. Quem for mais rápido leva. Sem cadastro, sem firula."
  • Ajustar o H1 sr-only (HomeView.tsx:220-221) para incluir o solo preservando a keyword multiplayer (SEO). Ex.: "CodeRacer — corrida de digitação para programadores: treine sozinho ou jogue multiplayer com amigos, sem cadastro."
  • Não tocar nos chips ("tempo real / multiplayer / N linguagens") nem no fluxo/CTAs — só texto.

Acceptance criteria (verificáveis)

  1. O subcopy visível do hero menciona explicitamente a opção de jogar/treinar sozinho antes ou junto da menção a amigos (HomeView.tsx:241-242).
  2. O H1 sr-only continua contendo a keyword "multiplayer" e passa a conter também o termo solo/treinar (SEO não regride).
  3. Nenhuma mudança em lógica, handlers, chamadas de API ou animação — diff só de strings (a área sagrada de latência de input nem é tocada).
  4. prefers-reduced-motion e o layout do hero permanecem idênticos (a copy nova cabe no max-w-2xl sem quebrar em telas mobile).
  5. pnpm typecheck + pnpm build verdes.

Coordenação (evitar conflito de merge)

#25/PR #40 e esta issue mexem na mesma região do HomeView (hero + bloco de CTA). Quem for mergeado primeiro define a base; a segunda PR deve rebasear em origin/main e conferir que o botão "treinar →" (de #25) e a copy nova (desta) convivem. Se #25 já tiver mergeado no momento da resolução, basta ajustar as strings sobre a versão já com o botão.

Fora de escopo

Rota /practice e botão solo (é #25), qualquer mudança de SEO/metadata além do H1, novos componentes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Prioridade normalarea:uiInterface, design system, animação, game feel

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions