Proyectos

2026

1945 Trade: Sitio Logístico Bilingüe, Segunda Obra para el Mismo Grupo

DesignDevFrontendBackend

Un sitio estático bilingüe (ES/EN) para 1945 SRL / 1945 Trade, empresa argentina de soluciones logísticas integrales, migrado desde un WordPress viejo a Astro en Cloudflare Pages, con un formulario de contacto serverless. Es el segundo sitio para el mismo grupo que Lineal.

Tecnologías

  • Astro Salida totalmente estática y bilingüe, con una vista por página que recibe el idioma, más sitemap, hreflang, canonical, Open Graph y datos JSON-LD de Organization.
  • TypeScript Config del sitio, diccionarios de i18n y límites del formulario tipados, compartidos entre el navegador y el servidor.
  • Cloudflare Pages Functions Un único endpoint POST /api/contact se encarga del antispam, el envío de email y el guardado de la consulta.
  • SMTP y Google Sheets API Las consultas salen por el servidor de correo propio de la empresa vía SMTP y también se pueden agregar a una planilla con una cuenta de servicio.
  • GitHub Actions y Wrangler Cada push a main compila el sitio y lo publica en Cloudflare Pages.
  • Fontsource (Inter, Inter Tight, IBM Plex Mono) Tipografías auto-hospedadas para títulos, texto y etiquetas monoespaciadas.
  • Analítica con consentimiento Tags de GA4, GTM, Meta Pixel y LinkedIn detrás de Google Consent Mode v2, que cargan solo si están configurados.
Hero de la home de 1945 Trade con una foto de puerto y el título "Soluciones logísticas creativas para un mercado que no se detiene".

Resumen del Proyecto

1945 SRL / 1945 Trade es una empresa de Buenos Aires que ofrece soluciones logísticas integrales: fletes, almacenamiento, aduana, seguros, certificaciones, seguimiento financiero y proyectos especiales. El sitio nuevo reemplaza al WordPress anterior de 1945srl.com.ar (todavía no está publicado en ese dominio) y es una reconstrucción estática y bilingüe con cuatro páginas por idioma: inicio, empresa, soluciones y contacto.

Es el segundo sitio que hice para el mismo grupo que Lineal, así que la idea fue reutilizar una base probada y darle a 1945 una identidad propia. Me ocupé de la migración de contenido, el diseño, el frontend, el backend del formulario y el pipeline de deploy.

Objetivos

  • Migrar sin perder contenido - Pasar los textos del WordPress viejo a un sitio estático más rápido, manteniendo las mismas URLs en español para no necesitar redirecciones.
  • Bilingüe desde el diseño - Servir español e inglés con rutas propias y metadatos correctos para buscadores. El sitio viejo era solo en español.
  • Captura de consultas confiable - Asegurar que una consulta nunca se pierda en silencio y que el spam no llegue al equipo.
  • Reutilizar con identidad propia - Compartir la arquitectura con Lineal sin perder el look de 1945.
  • Medición respetuosa de la privacidad - Soportar analítica y tags publicitarios sin cargar nada antes del consentimiento.

Flujo de Trabajo del Proyecto

  • Migración de contenido - Retrabajé los textos de las cuatro páginas viejas (Inicio, Empresa, Soluciones, Contacto), corrigiendo errores de tipeo y escribiendo la versión en inglés. No se agregaron clientes, cifras ni testimonios inventados. Las cifras de la home (20+, 6, 5, 1) salen del texto del sitio viejo (más de veinte años, seis servicios, cinco industrias, un solo prestador) y no se presentan como logros.
  • Qué se reutilizó de Lineal - La arquitectura bilingüe de Astro (dos diccionarios tipados, un archivo de config, vistas que reciben el idioma), la Function de contacto, la capa de consentimiento y analítica, y el deploy con GitHub Actions a Cloudflare Pages.
  • Qué es distinto - Una identidad nueva en negro, papel y rojo con el pin del logo como motivo: puntos rojos en los eyebrows, el pin como favicon y un loader donde el pin cae. Cuatro páginas en lugar de ocho, y el correo sale por el SMTP propio de la empresa en vez de Google Workspace, porque el dominio no lo usa.
  • Imágenes y hero - Una serie de fotos diurnas generadas con IA para cada sección, y un video de hero en loop con cortes de escritorio y mobile que aparece con fundido desde un cuadro fijo equivalente, que también se muestra a quienes piden menos movimiento.
  • Arquitectura bilingüe - Las rutas en español son las mismas de WordPress; el inglés vive bajo /en/. Incluye hreflang, URLs canonical, JSON-LD, sitemap y 404.
  • Pipeline de contacto - Una Cloudflare Pages Function valida el header de origen, un campo honeypot, el tiempo de llenado (entre 3 segundos y 7 días) y la cantidad de links. El spam recibe una respuesta de éxito falsa. Las consultas válidas se envían por email y se pueden agregar a Google Sheets. El pedido es exitoso si al menos un destino funcionó.
  • Consentimiento y analítica - Google Consent Mode v2 con banner de cookies y un helper de tracking para eventos de lead, con su propio prefijo de cookies y funciones.
  • Pipeline de deploy - GitHub Actions con Wrangler a Cloudflare Pages en cada push a main. El README lista los registros DNS (mail, MX, SPF) que hay que copiar al mover el dominio para que el correo siga andando.

Resultados e Impacto

  • Una única fuente de verdad por idioma - Todos los textos viven en dos diccionarios y los datos de contacto en un archivo de config.
  • Formulario sin punto único de falla - Email y planilla son destinos independientes.
  • Antispam sin terceros - Reglas de origen, honeypot, tiempo y links sin CAPTCHA, con límites compartidos entre el navegador y el servidor desde un solo archivo.
  • Consentimiento respetado por defecto - Sin IDs de analítica configurados, no se carga ningún script de terceros.
  • Segunda obra más ágil - Compartir la base con Lineal permitió dedicar el trabajo al contenido, la identidad y las diferencias de correo.
  • Deploys sin intervención manual - Hacer push a main compila y publica el sitio en Cloudflare Pages.