O nosso stack — nada a esconder
Esta é a infraestrutura exata que faz funcionar este site. Cada escolha é fundamentada, cada ferramenta já provou o seu valor. Os mesmos padrões técnicos para todos os nossos clientes.
Framework front-end
Ecossistema maduro, renderização concorrente para transições fluidas.
Segurança na compilação, refatorações tranquilas, código autodocumentado.
HMR instantâneo em desenvolvimento. Desde a v8, o bundle é produzido pelo rolldown e minificado pelo oxc — o esbuild saiu da árvore de dependências.
API declarativa, rotas carregadas a pedido, compatível com Suspense.
Estilo e design system
Zero runtime, purga automática, coerência visual garantida pelos tokens.
- shadcn/ui (novo separador)Componentes primitivos
Copiados para o repositório — sem dependências frágeis, código 100% controlado.
- Radix UI (novo separador)Primitivas acessíveis
ARIA correto desde a instalação, navegação por teclado, retenção do foco.
API declarativa, respeita prefers-reduced-motion, composição por GPU.
Tree-shaking, estilo coerente, mais de 1500 ícones mantidos.
Desempenho
- Pré-renderização — Chromium sem interfacev149.0HTML servido completo
Todas as rotas do site — páginas de serviço, páginas locais e os 37 estudos de caso do portfólio — são renderizadas durante o build num Chromium sem interface. Antes, o servidor devolvia o mesmo index.html vazio para todas: os robôs que não executam JavaScript só viam os metadados da página inicial.
- web-vitalsv6.1Monitorização RUM
LCP, INP e CLS medidos junto de utilizadores reais e enviados para o GA4.
- WOFF2 variable fontsTipos de letra
Outfit + Plus Jakarta Sans alojadas localmente, subconjunto latino, font-display: optional.
- Divisão manual de chunksCode splitting
Vendors separados (react, motion, radix, pdf) → cache de longo prazo otimizada.
SEO e dados estruturados
- @dr.pogodin/react-helmetv3.2Meta por rota
Title, description e Open Graph próprios de cada página.
- Schema.org JSON-LDDados estruturados
Organization, LocalBusiness, Service, FAQPage, HowTo, BreadcrumbList, Article.
- llms.txtOtimização GEO
Ficheiro dedicado à indexação pelo ChatGPT, Claude, Perplexity e Gemini.
- Sitemap XMLRastreabilidade
Gerado durante o build a partir das rotas declaradas em App.tsx — nunca pode ficar desatualizado em relação ao site.
Back-end e dados
Postgres gerido, Auth, Storage, Edge Functions — open source.
- Brevo (novo separador)Formulário de contacto
Recebe as mensagens do formulário de contacto, encaminhadas por uma função serverless da Vercel.
- Resend (novo separador)E-mails transacionais
Envia os orçamentos em PDF do configurador, através de uma função Supabase. Sem filtragem por IP do lado da API.
- Zodv4.4Validação em tempo de execução
Esquemas tipados partilhados entre cliente e servidor, mensagens de erro em francês.
Infraestrutura e CI/CD
- Vercel (novo separador)Alojamento Edge
Implementação a cada git push, CDN mundial, HTTP/3, ramos de pré-visualização.
- IONOS (novo separador)Registo e DNS
Domínios kayzen-lyon.com e .fr, zona DNS e correio eletrónico.
- GitHubControlo de versões
Revisão de código e histórico completo — é ele que alimenta o registo de alterações público.
- Service WorkerOffline-first
Cache estratégica dos recursos, página de recurso /offline.html.
- Vitestv4.1Testes unitários
Partilha a configuração do Vite, ou seja, os mesmos aliases e o mesmo pipeline que em produção.
- Playwrightv1.62Testes E2E
Percursos críticos reproduzidos no Chromium (desktop) e num perfil móvel Pixel 7.
Segurança e conformidade
- Content-Security-PolicyAnti-XSS
script-src sem 'unsafe-inline': cada script inline é autorizado pela sua impressão SHA-256, verificada durante o build.
- HSTS preloadAnti-downgrade
max-age de 2 anos, includeSubDomains, lista de pré-carregamento do Chrome.
- Permissions-PolicyPrivilégio mínimo
Câmara, microfone, USB e geolocalização desativados por predefinição.
- RGPD by designPrivacidade
Consent Mode v2, recusa por predefinição, GA4 carregado apenas após consentimento explícito (sem GTM), subcontratantes identificados.
Ferramentas internas
- ESLintv10.8Linting
Regras rigorosas, verificação dos hooks, bloqueante na CI.
- rollup-plugin-visualizerv7.0Análise do bundle
Inspeção gráfica dos chunks, deteção de importações pesadas.
- PostCSSv8.5Build CSS
Autoprefixer, compatibilidade com navegadores modernos (alvo es2020+).
- npmGestor de pacotes
O package-lock.json é a referência, e é ele que a Vercel instala em cada implementação.
Esta página está viva
Atualizamos esta lista a cada evolução importante. Consulte o nosso registo de alterações público para o histórico completo das iterações, ou o nosso design system para os tokens e componentes.
Falar sobre a sua infraestrutura