Site

Crie um site SaaS escuro e rápido, com uma história de produto fixada e guiada pela rolagem com GSAP

Cria um site de produto com várias páginas no seu servidor de hospedagem, com uma história de produto fixada com ScrollTrigger e sincronizada com a rolagem, uma entrada de títulos com SplitText e rolagem suave com Lenis. As bibliotecas de animação carregam apenas onde são necessárias e depois da primeira renderização, e o Lighthouse mobile é medido e mantido acima de 95.

Quando usar

Quando você quer um site de produto com movimento marcante para o seu software ou produto digital, sem abrir mão de velocidade, acessibilidade ou visibilidade nas buscas.

O que você recebe

Um site de cinco páginas com uma história de produto fixada, menu estático e dados estruturados, além de uma tabela Lighthouse por página para mobile e desktop, os critérios de aprovação cumpridos e a lista de correções aplicadas.

Ele altera algo na minha conta?

Somente com sua aprovação. O assistente mostra primeiro uma prévia de cada alteração e aguarda o seu aval.

Funciona com

SEO Intelligence, Search Console

Preencha antes de enviar

[nome do servidor][nome do produto][o que faz, para quem é][três passos][4 a 6 recursos][e-mail][telefone][número do WhatsApp][endereço, se houver][domínio][cor ou "você escolhe"][links ou "nenhuma"]
Use minha conexão com o Opus Growth para isso. Se você não encontrar a ferramenta de que precisa, procure entre as ferramentas do Opus Growth (com search_tools, se estiver na sua lista); se não conseguir acessar as ferramentas de forma alguma, não adivinhe, me avise. No meu servidor de hospedagem Opus Growth [nome do servidor], crie um site de produto escuro e com várias páginas para [nome do produto], que conte a história do produto conforme o visitante rola a página. Produto: [o que faz, para quem é]. Os três passos que um usuário segue no produto: [três passos]. Principais recursos: [4 a 6 recursos]. Contato: [e-mail], [telefone], [número do WhatsApp], [endereço, se houver]. Domínio: [domínio]. Preferência de cor: [cor ou "você escolhe"]. Capturas de tela ou fotos reais do produto: [links ou "nenhuma"]. Páginas: início (/), produto (/urun/), sobre (/hakkimizda/), contato (/iletisim/), privacidade (/gizlilik/) e 404.html. Seções da página inicial, em ordem: hero (h1, descrição em duas frases, dois botões, imagem do produto), a história do produto como elemento de assinatura, recursos, para quem é, FAQ e uma chamada final para ação. Sem formulário na página de contato; use email, telefone e um link do WhatsApp com mensagem pré-preenchida, porque o servidor serve apenas arquivos estáticos. Estilo: movimento escuro. Fundo escuro, uma única cor de destaque contida (não neon), uma fonte display grotesca compacta da Fontshare (por exemplo, Cabinet Grotesk) e uma fonte de texto calma (por exemplo, Switzer). Sem gradientes e sem WebGL; guarde a ousadia para a história do produto. Regras de movimento (a parte mais difícil, siga-as à risca): 1. Bibliotecas: GSAP 3.13 core, ScrollTrigger, SplitText e Lenis. Baixe-as do jsdelivr para `assets/vendor/` com site_fetch e fixe a versão. Carregue-as apenas nas páginas inicial e de produto; as páginas sobre, contato e privacidade não levam nenhum script. Não carregue o Swiper. 2. Não anexe essas bibliotecas com `<script defer>`. Coloque um pequeno loader no final da página: depois do evento load, ele espera duas chamadas de requestAnimationFrame e então requestIdleCallback, adiciona os scripts em ordem com async=false e não baixa nada se `<html>` não tiver a classe `anim`. Na demonstração, as bibliotecas com defer levaram o LCP no mobile a 3,2 s e deixaram o Performance em 92; com esse loader chegou a 99. 3. Um script de uma linha no `<head>` adiciona a classe `js` ao `<html>`, e a classe `anim` a menos que prefers-reduced-motion seja "reduce". Defina os estados iniciais ocultos apenas sob `.anim`, para que o conteúdo fique visível desde o início com JS desativado ou para visitantes que preferem menos movimento, e as bibliotecas nunca sejam baixadas para eles. Como rede de segurança caso uma biblioteca falhe ao carregar, adicione uma animação CSS que torne visíveis todos os elementos ocultos após 2,5 s. Se o JS chegar depois disso, não oculte novamente o conteúdo visível; apenas monte a história fixada. 4. Entrada do título com SplitText: o h1 da primeira tela é o elemento LCP, nunca o comece oculto. O h1 começa visível em uma cor atenuada que ainda passa no contraste AA, e o SplitText leva suas linhas à cor total uma após a outra (opções mask e aria ativadas). Mantenha a entrada das linhas mascaradas, subindo, nos títulos h2 mais abaixo e execute-a na rolagem com ScrollTrigger. 5. Elemento de assinatura: na história do produto, use pin e scrub do ScrollTrigger por meio de gsap.matchMedia apenas a partir de 768 px de largura (scrub em torno de 0.6, end "+=180%"). À esquerda, os três passos ficam ativos um a um; à direita, a tela do produto se preenche passo a passo. Não esmaeça os passos inativos com opacity; mude apenas a cor do título e a linha da borda. Na demonstração, passos esmaecidos com opacity falharam no contraste no desktop e derrubaram a Acessibilidade para 95. No mobile não há pin; os passos aparecem no fluxo normal. Sem JS, a tela do produto mostra seu estado final. 6. Ative o Lenis apenas em dispositivos `(pointer: fine)` para que dispositivos de toque mantenham a rolagem nativa. Controle o Lenis pelo gsap.ticker e mova o foco para o destino depois de rolar até um link interno da página. 7. A tela do produto é uma figura decorativa com aria-hidden e uma figcaption que diz o que ela mostra. Toda interação funciona com o teclado e o anel de foco permanece visível. Configuração e armadilhas conhecidas (cada uma reduziu uma pontuação nas medições da demonstração, não pule nenhuma): 1. Se já houver um site no ar no servidor, avise-me primeiro, porque a configuração sobrescreve index.html e a pasta assets. Mostre uma prévia de scaffold_site com confirm=false e chame-o com confirm=true após a minha aprovação. Depois leia site_design_guide e site_seo_guide. Antes de escrever código, coloque a direção de design (tipografia, cor, grid, elemento de assinatura, linguagem de movimento e as bibliotecas que NÃO serão carregadas) em um ART.md curto fora de assets e mostre para mim. 2. Compile o Tailwind em vez de carregá-lo pela CDN. Instale-o com site_run_command e background=true: `npm i -D tailwindcss@3`, e depois acompanhe com site_command_status. Os caminhos de content em `tailwind.config.js` devem cobrir todos os arquivos HTML, os templates e qualquer arquivo JS que escreva nomes de classes. `_src/tw.css` contém a linha `@import "../assets/app.css";` e as três linhas `@tailwind`; compile-o em um único arquivo com `npx tailwindcss -c tailwind.config.js -i _src/tw.css -o assets/site.css --minify`. Remova o script cdn.tailwindcss.com e o tailwind.config inline de todas as páginas e vincule apenas `/assets/site.css`. Recompile após cada alteração de HTML. 3. Hospede as fontes você mesmo. Leia o CSS das famílias da Fontshare que escolheu, baixe o arquivo woff2 de cada peso para `assets/fonts/` com site_fetch e escreva as regras @font-face com `font-display: swap` em `assets/app.css`; o design-check procura uma fonte personalizada ali. Confira o nome do font-family no CSS que você baixou, porque a Fontshare pode devolver outra família quando um peso não existe. Faça preload da fonte do título da primeira tela e da fonte do texto em todas as páginas com `<link rel="preload" as="font" type="font/woff2" crossorigin>`; na demonstração isso eliminou o deslocamento de layout causado pela troca de fonte (CLS de 0,024 para 0). A maioria das fontes da Fontshare não tem o glifo ₺, então escreva "TL" nos preços. 4. Faça o menu e o rodapé em HTML estático. Não carregue chrome.js nem site.config.js nas páginas. Escreva um pequeno `chrome-stamp.mjs` que leia a lista de navegação em site.config.js e carimbe `_src/header.tpl` e `_src/footer.tpl` entre os marcadores `<!-- nav:start --><!-- nav:end -->` e `<!-- footer:start --><!-- footer:end -->` de cada página, adicionando aria-current="page" ao link atual. Não dê aos templates a extensão .html e use marcadores como `[[NAV]]` em vez de `{{...}}`, caso contrário o design-check e o seo-check os leem como páginas inacabadas. Construa o menu mobile sem JS usando `<details>`. Mantenha o nome da empresa, o endereço e o telefone no rodapé como texto simples. 5. Converta as imagens durante o download com site_fetch: grave a mesma foto em arquivos separados com resize="480x", "800x" e "1200x", image_format="webp", quality=65. Dê a cada `<img>` srcset, sizes, width e height. A imagem principal da primeira tela recebe fetchpriority="high" e nunca é lazy; as demais recebem loading="lazy" decoding="async". Se a imagem principal ocupa toda a tela do celular, sirva um recorte mais largo e menor no mobile com `<picture>` (na demonstração, o hero mobile caiu de 89 KB para 43 KB). 6. Crie um favicon PNG de 48 px a partir do logotipo com site_fetch e adicione `<link rel="icon">` a todas as páginas. Sem ele, o navegador registra um 404 e as Boas Práticas caem para 96. 7. Regras do validador de HTML: comece todo documento com `<!DOCTYPE html>` em maiúsculas (os arquivos iniciais do kit usam minúsculas), use `&nbsp;` nos espaços do texto visível dos links tel:, nunca use o atributo style="" e dê a todo botão type="button". SEO, AEO e GEO: 1. Use URLs de diretório com barra final (/urun/, /hakkimizda/, /iletisim/, /gizlilik/). Preencha o bloco seo de site.config.js e execute `node seo-stamp.mjs`. Escreva o schema específico de cada página (início WebPage e FAQPage; produto SoftwareApplication e FAQPage; sobre AboutPage; contato ContactPage; BreadcrumbList nas páginas internas. Para uma empresa de software sem loja física, defina localBusiness:false em site.config.js) em blocos `<script type="application/ld+json">` separados e vincule-o ao grafo base com @id. Não esconda o BreadcrumbList dentro de um @graph; dê a ele seu próprio bloco, porque essa é a única forma de o seo-check o enxergar. 2. Títulos de 48 a 60 caracteres (o seo-check sinaliza como erro qualquer um acima de 65), descrições de 145 a 158 caracteres, um h1 por página. Toda página precisa de pelo menos 150 palavras de conteúdo principal; as páginas de contato e privacidade costumam ficar abaixo disso. 3. O primeiro parágrafo de cada página responde diretamente à pergunta da página. Escreva um FAQ específico da página com `<details>` e marque-o como FAQPage. Mostre a organização responsável pela publicação e uma data de "Última atualização" com `<time>`. 4. No robots.txt, escreva sua decisão com o motivo para GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-User, Claude-SearchBot, PerplexityBot, Perplexity-User, Google-Extended, Applebot-Extended, Bingbot e CCBot, e aponte para o sitemap. O sitemap.xml traz datas lastmod reais. O llms.txt contém um resumo preciso do site em duas frases e a lista das páginas principais. 5. Não invente nada: nenhuma avaliação, nota, prêmio, número de clientes, certificado, horário de funcionamento, coordenada ou preço, a menos que eu os informe. Deixe campos desconhecidos fora do schema. Critérios de aprovação (em ordem; não diga que terminou até que todos passem): 1. Com site_run_command, execute `node chrome-stamp.mjs`, o build do Tailwind, `node seo-stamp.mjs`, `node seo-check.mjs` (0 erros, 0 avisos), `node design-check.mjs` (0 erros; justifique qualquer aviso restante) e `npx html-validate "**/*.html"` (0 erros). 2. Veja todas as páginas com site_preview, view="mobile" e view="desktop". O site_preview captura a página com o movimento desativado (reduced-motion), então, se faltar conteúdo nessa imagem, o estado sem movimento está quebrado. Nas capturas de página inteira, imagens lazy mais abaixo podem aparecer vazias; isso não é erro, mas confira os caminhos delas. 3. Execute core_web_vitals em todas as páginas com strategy="mobile" e strategy="desktop". Aprovação: no mobile, Performance de pelo menos 95 e Acessibilidade, Boas Práticas e SEO 100; no desktop, as quatro de pelo menos 95. Em uma página que falhar, use resources=true para encontrar o arquivo que a atrasa, corrija e meça novamente. Depois execute seo_audit na página inicial com strategy="mobile" e runs=2. A lista de requisições de rede não pode conter nenhum host além do seu próprio domínio. 4. Sem rolagem horizontal nas larguras de 360, 390, 768 e 1440 px, alvos de toque de pelo menos 44 px, nenhum erro no console. Verificação de movimento: o site_preview não consegue mostrar movimento, então descreva a seção fixada da página inicial e diga o que devo verificar no meu próprio navegador: no desktop, a história do produto deve ficar presa no topo enquanto os passos avançam com a rolagem; no celular, deve fluir sem ficar presa; e, com redução de movimento ativada no sistema operacional, nada deve se mover e tudo deve estar visível. Depois de publicar: mostre a prévia da regra `/assets/* Cache-Control: public, max-age=31536000, immutable` com site_headers e aplique-a após a minha aprovação; a partir daí, renomeie os arquivos CSS ou JS quando mudarem (site-v2.css e assim por diante). Envie o sitemap.xml com gsc_submit_sitemap e verifique a página inicial com gsc_url_inspect. Termine com uma tabela de pontuação por página (página, quatro pontuações mobile, quatro pontuações desktop, LCP, CLS), os resultados dos critérios e a lista de correções aplicadas.

Exemplo de resultado

Um exemplo do resultado que este prompt gera. A estrutura vem da saída real das ferramentas; os números e nomes são fictícios.

Exemplo de resultado (em uma marca de demonstração fictícia, não são dados reais de clientes; as pontuações são as medições reais da demo)

Este prompt foi seguido à risca para "Vardiya Defteri", um produto fictício de planejamento de turnos: fundo escuro, um único destaque âmbar, Cabinet Grotesk e Switzer, cinco páginas. A história do produto na página inicial fica fixa e vai sendo preenchida conforme a rolagem no desktop, e flui normalmente no celular. GSAP, ScrollTrigger, SplitText e Lenis carregam somente nas páginas inicial e de produto, depois da primeira renderização.

PáginaMobile (P/A/BP/SEO)LCP mobileDesktop (P/A/BP/SEO)CLS
Início99/100/100/1002.04 s100/100/100/1000
Produto100/100/100/1001.65 s100/100/100/1000
Sobre100/100/100/1001.51 s100/100/100/1000
Contato100/100/100/1001.51 s100/100/100/1000
Privacidade100/100/100/1001.51 s100/100/100/1000

Verificações: seo-check 0 erros 0 avisos, design-check 0 erros 0 avisos, html-validate 0 erros, sem overflow em 360/390/768/1440 px, console limpo, nenhuma requisição de rede fora do domínio do próprio site.

Correções aplicadas:
1. A mesma página inicial com o CDN do Tailwind e recursos externos marcou 89/94/100/100 no mobile (CLS 0.079); com CSS compilado e fontes e scripts locais, marcou 99/100/100/100.
2. Com bibliotecas em defer, o LCP mobile foi de 3.2 s e o Performance de 92; com o carregador em tempo ocioso após o load, 99.
3. Ocultar o h1 para o SplitText atrasava o LCP; agora o h1 começa visível e suas linhas entram mudando de cor.
4. Etapas esmaecidas com opacity derrubaram a Acessibilidade no desktop para 95; trocar por mudança de cor levou a 100.
5. Um favicon ausente registrava um erro 404 e o Best Practices caiu para 96; adicioná-lo restaurou o 100.

Um site de exemplo criado com este prompt

SaaS dark com movimento: storytelling de produto com pin e scrub do GSAP ScrollTrigger, entrada do título com SplitText, Lenis (somente mouse), bibliotecas carregadas em apenas 2 páginas e só depois da primeira renderização

Criado para uma marca fictícia seguindo este prompt à risca. As pontuações foram medidas com o Lighthouse em todas as páginas.

Crie um site SaaS escuro e rápido, com uma história de produto fixada e guiada pela rolagem com GSAP
Pontuações do Lighthouse (página mais fraca)
CelularComputador
Desempenho99100
Acessibilidade100100
Boas práticas100100
SEO100100

Verificações aprovadas

  • seo check: 0 hata 0 uyarı
  • design check: 0 hata 0 uyarı
  • html validate: 0 hata
  • overflow: 360/390/768/1440 taşma yok, konsol temiz, JS kapalıyken ve reduced-motion'da gizli içerik yok, dış ağ isteği yok
  • tailwind before after: Ana sayfa Tailwind CDN + Fontshare + jsdelivr + JS menü ile mobil 89/94/100/100 (CLS 0,079), derlenmiş CSS + yerel font/betik + statik menü ile 99/100/100/100 (CLS 0)
Capturas de tela
Crie um site SaaS escuro e rápido, com uma história de produto fixada e guiada pela rolagem com GSAP: Celular
Celular
Crie um site SaaS escuro e rápido, com uma história de produto fixada e guiada pela rolagem com GSAP: Computador
Computador

Medido em: 2026-10-11

Buscas relacionadas

Estes prompts funcionam melhor quando seu assistente de IA está conectado às suas contas com o Opus Growth.

Conecte suas contas grátis

Mais prompts

SiteAltera após sua aprovaçãoDemonstração ao vivo

Crie um site editorial de especialista com seção de guias e schema de autor

Peça ao seu assistente para criar o site de um especialista com página inicial em estilo capa de revista, guias longos e um perfil de autor. Tipografia serifada, schema Article e Person e artigos datados e com fontes resultam em uma publicação que as pessoas leem e que as respostas de IA podem citar.

Quando usarQuando você é consultor, especialista ou tem um negócio de conhecimento de uma pessoa só e quer que seu site pareça uma publicação que mostra sua expertise por meio da escrita, e não um folheto.

SEO Intelligence, Search Console
SiteAltera após sua aprovaçãoDemonstração ao vivo

Crie um site de negócio familiar tradicional com visual clássico e padrões modernos

Peça ao seu assistente para criar um site no espírito de um rótulo antigo e de uma placa de loja para um produtor de terceira geração, com moldura e textura de papel. O visual é antigo, mas a construção é nova: mobile first, sem JavaScript, fontes hospedadas por você, WebP, schema Product e HowTo.

Quando usarQuando você vende um ofício passado de geração em geração, como lokum, azeite, queijo ou utensílios de cobre, e quer um visual clássico que carregue essa história sem abrir mão de velocidade e acessibilidade.

SEO Intelligence, Search Console
SiteAltera após sua aprovaçãoDemonstração ao vivo

Crie o site de um escritório de advocacia ou contabilidade em estilo minimalista suíço, com fortes sinais de confiança

Faz seu assistente criar um site estático para o escritório, em uma grade rigorosa, com a hierarquia sustentada por uma única família tipográfica. Coloca na página os sinais de confiança que um segmento YMYL exige: perfis dos profissionais, uma nota de orientação datada e com fontes, textos que respeitam as regras de publicidade profissional e schema Person.

Quando usarQuando um escritório de advocacia, de contabilidade ou outra prática profissional semelhante precisa de um site com aparência séria e sóbria, que respeite as regras de publicidade profissional e comprove sua expertise.

SEO Intelligence, Search Console
SiteAltera após sua aprovaçãoDemonstração ao vivo

Crie um site institucional de várias páginas sem JavaScript e entregue com nota 100

Peça ao seu assistente para criar um site estático, rápido e acessível para trabalhos corporativos como arquitetura, engenharia ou consultoria. Menu e rodapé são HTML estático, fontes e CSS são hospedados por você e cada página é medida antes da entrega.

Quando usarQuando uma empresa corporativa precisa de um site com várias páginas em que velocidade e acessibilidade importam mais que decoração, sem animação e sem JavaScript.

SEO Intelligence, Search Console