Skip to content

Vaynerov Technologies

Não nos limitamos a desenvolver — conjuramos cada linha de código e cada píxel.

Todos os artigosHistórias de construção

Reconstruir a página inicial: a oferta primeiro

Há dois dias reordenei a página inicial para a oferta abrir em vez de fechar. Esta é a cirurgia — o que cortei, o que fundi e o sprint de desempenho que só fez sentido depois de a forma estar certa.

Edward AmirainFundador, Vaynerov Technologies
Publicado 9 min de leitura
Nesta página
  1. A ordem por que o trabalho aconteceu
  2. A ordem que devia ter lançado
  3. Cortar é a maior parte do trabalho
  4. O sprint do Lighthouse
  5. Dois truques de LCP, contados com honestidade
  6. Contraste, e uma navegação que sai da frente

Contei os deslizes. De pé numa fila, com o meu próprio site aberto no telemóvel, a puxar com o polegar até à secção que diz o que é que nós vendemos afinal, contei 4.9 ecrãs. Cinco ecrãs de telemóvel cheios de preâmbulo antes de um visitante ficar a saber que serviços é que um estúdio de software oferece. Tinha construído aquela página secção a secção ao longo de dois meses, e cada uma delas tinha sido uma boa ideia no dia em que aterrou.

É assim que a arquitetura de informação de uma landing page corre mal. Ninguém decide enterrar a oferta. A ordem da página acaba por ser a ordem por que o trabalho aconteceu, que é uma cronologia que significa tudo para mim e nada para quem tem o telemóvel na mão. A sequência de uma página é uma afirmação sobre o tempo de quem é que vale mais, e a minha estava a fazer a afirmação errada bem alto.

1.75
ecrãs até à oferta (eram 4.9)
12
secções na página inicial (eram 14)
0.001
CLS (era 0.079)
100 / 100
Lighthouse em desktop

A reestruturação e o sprint que se lhe seguiu, 2026-07-03.

A ordem por que o trabalho aconteceu

A página antiga tinha catorze secções e cerca de 13 900 píxeis de altura. Abria com o herói e depois vagueava: profundidade de marca, processo, um teaser autónomo para o Reliquary, uma secção separada a explicar a nossa cadência de sprints e, por fim — algures muito abaixo do horizonte da dobra — serviços e preços. Cada acrescento tinha sido posto onde cabia, ou seja, no fim, que é como uma página se transforma numa camada de sedimento.

O que tornava isto difícil de ver é que cada secção, isoladamente, estava bem. A secção de processo explicava bem o nosso processo. O carril de cadência era uma boa peça de design. O problema não era de qualidade em lado nenhum; era que um visitante de primeira vez tinha de merecer a resposta a «o que é que vocês fazem» rolando à procura dela, e a maioria das pessoas, e muito bem, não o faz.

Uma landing page não é uma autobiografia. É uma resposta, e a resposta pertence ao topo.

A ordem que devia ter lançado

A nova sequência é: herói, prova, serviços, trabalhos, o Padrão Vaynerov, o percurso, a montra dos jogos, as etapas do Lab, preços, testemunhos, FAQ, CTA. No código está escrita como comentário por cima da lista de secções, porque uma ordem de execução é o tipo de decisão que a próxima pessoa com pressa desfaz sem dar por isso — eu incluído:

Prova → oferta → evidência → profundidade de marca → processo → recreio do Lab → fecho comercial.

A prova vem antes da oferta de propósito. A faixa de métricas logo por baixo do herói está lá para comprar a credibilidade que a secção de serviços depois gasta. A evidência — trabalho real, casos de estudo reais — segue-se de imediato, porque uma afirmação que se pode verificar ganha a uma afirmação em que é preciso acreditar. Só então chegamos a quem somos e a como trabalhamos, e o fecho comercial espera pelo fim, onde pertence. Os serviços começam agora 1.75 ecrãs abaixo, num telemóvel.

Antes e depois. Os grandes movimentos: serviços e trabalhos sobem acima da história de marca, o processo dobra-se dentro do percurso e os teasers do Lab consolidam-se num único carril.

Há uma regra visual por baixo da ordem de execução de que gosto mais do que consigo justificar. Um motivo de circuito — uma linha fina traçada, marcadores de etapa, a sensação de que há corrente a atravessar a página — percorre as primeiras seis secções. Faz uma pausa nas etapas do Lab e retoma nos testemunhos, antes de terminar no CTA. A pausa é o essencial. O Lab é outra sala: jogos, o museu, o Orrery e o Blueprint que lançámos há três dias. Fazer passar a mesma corrente por ali diria que essas coisas fazem parte do argumento de venda, e não fazem. São a oficina, vista através de uma porta.

Cortar é a maior parte do trabalho

Reordenar é a metade fácil. A página melhorou porque duas secções deixaram de existir.

O carril semanal da cadência de sprints fundiu-se na secção do percurso, onde sempre pertenceu — o percurso já contava aquela história em prosa, e o carril contava-a outra vez em imagens, um ecrã depois. A secção de processo na página inicial desapareceu por completo; quem quiser a versão integral pode ler a página de processo, que é mais detalhada do que uma secção da home alguma vez terá licença para ser. E o Reliquary perdeu o seu teaser privado, porque a 2 de julho já tínhamos três destes instrumentos e dar uma secção inteira a um deles tinha passado a ser um acidente da ordem de publicação e não um juízo sobre importância.

No lugar dele: um carril do Lab, três a par — Museu, Orrery, Blueprint. A minha primeira versão punha o texto numa placa sobreposta à imagem de cada instrumento, o que ficava bem no meu portátil e cortava o texto a 390 px de largura, ou seja, no telemóvel com que eu estivera de pé na fila. A reconstrução é imagem em cima, texto por baixo. Nada de inteligente, e encaixa.

Uma mão-cheia de correções mais pequenas apanhou boleia: a etiqueta de modo da montra de jogos esconde-se abaixo do breakpoint sm em vez de amontoar o cartão; o sobretítulo de cada secção recebe agora o seu espaçamento de 0.3em do SectionHeader partilhado, e não do que me apeteceu escrever nesse dia; a grelha do Padrão está limitada a 1600 px para deixar de se esticar até ao horizonte em monitores largos.

Catorze secções e 13 900 píxeis passaram a doze e 12 500. A página diz mais do que dizia e é mais curta do que era, que é o único tipo de edição que vale a pena fazer duas vezes.

O sprint do Lighthouse

Com a forma assente, fui atrás dos números, e é aqui que a história deixa de ser sobre gosto. O desktop acabou em 100/100. O Speed Index caiu de 1.7 s para 0.5 s, e o CLS de 0.079 para 0.001. Em mobile, o Speed Index passou de 4.3 s para 1.7 s, com um tempo total de bloqueio de 30 ms, CLS a zero e um LCP observado de 207 ms.

Duas das alavancas eram sobre deixar de fazer coisas. O nosso preloader — a breve cortina de marca — passou a correr apenas em navegações do lado do cliente, nunca num carregamento a frio, onde estava à frente de uma página que já estava pronta. E a Inter é servida com display: optional, o que significa que o navegador usa a alternativa em vez de deixar a pintura refém de um ficheiro de tipo de letra. Nenhuma das mudanças é interessante. Ambas eram de graça.

Dois truques de LCP, contados com honestidade

O resto do ganho de Speed Index veio de perceber como é que o Chrome regista realmente o Largest Contentful Paint, e quero descrever isto com cuidado porque é a parte que pode soar a batota.

Primeiro: o título do herói aparecia em fade. O Chrome não regista um candidato a LCP de texto enquanto a animação de opacidade não termina, portanto o nosso carimbo temporal de LCP chegava cerca de 2.5 segundos depois de o título já estar visualmente presente no ecrã. Os píxeis estavam lá. A medição é que esperava pelo fim da animação para concordar. Tirar o fade do título mudou a métrica para onde a realidade já estava.

Segundo, e mais estranho: as outras entradas do herói começam agora a opacidade 0.011, e não 0, porque os elementos com opacidade exatamente zero são excluídos por inteiro da consideração do LCP. Onze milésimos são invisíveis para um olho humano e visíveis para a métrica.

Andei para trás e para a frente com esse segundo caso durante algum tempo. O teste em que assentei é se a mudança torna o número mais honesto ou menos. Aqui, o visitante vê o título exatamente no mesmo instante em que sempre viu — a pontuação é que estava a mentir sobre uma página que já era rápida, e agora não está. Se em vez disso eu tivesse atrasado uma imagem pesada para a métrica escolher um elemento mais barato, isso seria o outro tipo de truque e merecia outra palavra. O preloader levou o mesmo tratamento ao contrário: o seu tempo mínimo de exibição caiu de 1800 ms para 1100 ms e, num aparelho real, isso levou a dispensa de 2.5 s para 1.8 s. Isso não é um ajuste de métrica. São 700 ms da vida de alguém devolvidos.

Contraste, e uma navegação que sai da frente

A acessibilidade passou de 95 para 100 em desktop e em mobile, e a correção que contou foi uma única variável. A nossa cor de primeiro plano nas superfícies primária e de destaque era branca, a 2.5:1 contra o destaque — um rácio de contraste que falha, pura e simplesmente, nos botões mais clicados do site. É agora um azul-petróleo escuro, #042F2E, a 5.8:1. Texto escuro sobre um botão de azul-petróleo vivo pareceu-me errado durante cerca de um dia e depois passou a parecer certo, que é mais ou menos a meia-vida de um hábito de design. O desempenho em desktop passou de 94 para 97 na mesma passagem.

A última peça foi a navegação. Numa página que se rola ao longo de 12 500 píxeis, uma barra permanentemente fixa é um imposto permanente sobre o ecrã. A nossa esconde-se agora ao fim de 48 px de rolagem descendente sustentada, passado um piso de 160 px, e volta com 10 px de rolagem ascendente — o piso impede-a de tremeluzir no topo da página, e a assimetria faz com que apareça no instante em que se estende a mão para ela. O filete de progresso de leitura por baixo dela é uma única variável CSS escrita a partir do gestor de rolagem que já estava a correr; a alternativa seria um segundo ouvinte para calcular um número que o primeiro já tinha.

Trouxe também um pequeno defeito do género que só aparece em combinação: com o menu móvel aberto, a transformação da barra criava um contexto de empilhamento que fechava o seu botão de alternância em z-50 por baixo da sobreposição em z-40. Abria-se o menu e o botão para o fechar deixava de ser clicável. A correção retira a transformação sob [data-menu-open]. Em separado, a barra completa de desktop passa a aparecer em xl (1280 px) e não em lg, pela razão pouco glamorosa de que dispô-la honestamente precisa de cerca de 1232 px e eu andava a pedir-lhe que coubesse em menos.

Nada disto está terminado. A ordem das secções é uma hipótese sobre desconhecidos, e a maneira honesta de a segurar é com pouca força — conto voltar a mexer nas coisas assim que houver tráfego suficiente para discutir comigo. Mas a medição que vou manter é a que fiz na fila: não quantas secções tem a página, mas quantos ecrãs são precisos para responder à pergunta com que o visitante chegou. A nossa está em 1.75 ecrãs. Se voltar a descer, vocês saberão antes de mim.