Este sitio es una aplicación Next.js en veintidós idiomas cuya construcción falla — no advierte — cuando falta una página en el mapa del sitio, una clave de traducción no se resuelve, un enlace interno causaría una carga completa de la página, una animación de entrada es lo suficientemente lenta como para leerse como un puesto de venta, o un precio cotizado no se puede verificar con el catálogo en vivo.
| Medida | Valor | Fuente | Medido |
|---|---|---|---|
| Automated guards that fail the build | 17 | scripts/check-*.ts and scripts/check-*.mjs in the marketing site repository | |
| Translation key literals verified against the dictionary at build time | 1,557 across 470 files | npm run guard:i18n output | |
| Files checked for locale-aware navigation and animation budget | 294 | npm run guard:navigation output | |
| Languages served | 22 | messages/*.json in the marketing site repository | |
| Maximum permitted entrance animation duration | 0.3s, with per-item delay capped at 0.15s | scripts/check-client-navigation.mjs | |
| Programmatic content pages generated from typed data | 132 (37 industries, 45 integrations, 9 comparisons, 41 glossary terms) | app/lib collection directories |
Qué edificio nos enseñó
Todas las agencias dicen que sus sitios son rápidos y bien construidos. La afirmación es infalsificable en el punto de venta, por lo que se hace tan libremente. Preferiríamos ser verificables: abrir las herramientas de desarrollo, ejecutar una auditoría, leer el mapa del sitio, cambiar el idioma, inspeccionar los datos estructurados.
Lo que hace que se mantenga bueno no es el cuidado, sino la aplicación. El cuidado degrada; la sexta persona que toca una base de código no conoce las reglas y ninguna cantidad de documentación lo arregla. Así que las reglas son ejecutables. Diecisiete scripts de guardia se ejecutan antes de que se construya la imagen del contenedor, y un error detiene el despliegue. Un guardia recorre las carpetas de ruta y falla si existe una página que no se lista en el mapa del sitio, por lo que una página no se puede lanzar silenciosamente y nunca se envía a un motor de búsqueda. Otro busca enlaces internos que no sean sensibles a la configuración regional, porque uno de ellos en un pie de página compartido estaba causando una recarga completa del documento en cada página del sitio.
El protector de rendimiento es el que más vale la pena robar. Las páginas aquí anteriormente enviaban docenas de elementos con opacidad cero y los atenuaban al montar, con el retraso multiplicado por el índice, por lo que la décima carta en una lista terminaba llegando más de un segundo y medio después del clic. La red nunca fue el problema; la animación estaba decidiendo cuándo la página parecía lista. El protector ahora limita la duración de entrada y el retraso por elemento, y exime los bucles genuinamente ambientales.
Una página cuya copia no ha sido traducida a un idioma se muestra en inglés con el prefijo de ese idioma, apunta su etiqueta canónica al original en inglés y se oculta deliberadamente del mapa del sitio de ese idioma, porque si se envía, se archiva en la consola de búsqueda como un duplicado que no puede ser indexado. La regla se calcula a partir del propio diccionario: un idioma cuenta como traducido para una sección solo cuando lleva al menos el noventa por ciento de las cadenas de esa sección y menos del treinta por ciento de ellas son byte-idénticas al inglés, que es cómo detectamos un proveedor de traducción silenciosamente haciendo eco de la fuente.
Construido con
- Next.js
- React
- TypeScript
- Tailwind CSS
- next-intl
- Content Security Policy
- Trusted Types
Para lo que esto nos califica
Cuéntanos lo que estás tratando de hacer
Una breve conversación suele ser suficiente para saber si somos las personas adecuadas, si no lo somos, lo diremos y le indicaremos un lugar mejor.
