Repository navigation
Description
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 já 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 keywordmultiplayer(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)
- 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). - O H1 sr-only continua contendo a keyword "multiplayer" e passa a conter também o termo solo/treinar (SEO não regride).
- 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).
prefers-reduced-motione o layout do hero permanecem idênticos (a copy nova cabe nomax-w-2xlsem quebrar em telas mobile).pnpm typecheck+pnpm buildverdes.
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.
Activity
caioross commentedon Jul 20, 2026
Resolvido em PR #52 — microcopy do hero (H1 sr-only + subcopy) agora fala de solo E multiplayer, sem perder o gancho competitivo nem a keyword
multiplayer(SEO). Diff só de strings; gate (typecheck+build) verde; verificado em browser (desktop 1280 + mobile 375 sem overflow,max-w-2xl/text-balancepreservados).feat(home): hero fala de solo E multiplayer para não perder o visitan…