Skip to main content

Dark Kinetic — Portfolio by Héctor Trejo Luna

[ID_REF]exact-domains-plataforma-multidominio-nextjs-oasis-hotels
[STK_VAL]Nextjs / Typescript / TailwindCSS / Laravel / PHP / AWS S3 / Digital Ocean / Postgresql
[STATUS]STABLE

Exact Domains: Plataforma Multidominio y Migración a Next.js para Oasis Hotels

RolFrontend Developer
Año2025
Captura de pantalla exact domains

El desafío: 8 marcas, un monolito y un solo equipo

Oasis Hotels & Resorts gestiona múltiples propiedades de lujo en Cancún y la Riviera Maya, cada una con su propio sitio web: the-pyramid-at-grand-cancun.com, grand-oasis-cancun.com, grand-oasis-palm.com, thesescancun.com, oasis-palm.com, smart-cancun.com, oh-cancun.com y grand-oasis-tulum.com.

Originalmente, todos estos dominios compartían una única aplicación legacy en Laravel (monolito MVC) hospedada en DigitalOcean. Si bien la solución cumplía, presentaba serios cuellos de botella:

  • Mantenimiento costoso: cualquier cambio en un sitio requería modificar el código del monolito y desplegar todo el sistema, con riesgo de afectar a los otros 7 hoteles.
  • Rendimiento inconsistente: en picos de tráfico turístico, el servidor único se saturaba, afectando la velocidad de carga y la tasa de conversión de reservas.
  • Gestión de contenido desordenada: el contenido estático (imágenes, folletos) se servía desde el mismo servidor de la aplicación, sin CDN ni estrategia de cacheo eficiente.
  • Google Tag Manager (GTM) no gobernado: píxeles de marketing y tracking se insertaban manualmente, generando inconsistencias entre dominios y afectando la precisión de los reportes.
  • Obsolescencia tecnológica: el frontend basado en Blade y jQuery dificultaba la adopción de estándares modernos de SEO y performance.

La dirección del grupo pidió unificar la experiencia visual, mejorar la velocidad de carga y reducir el costo operativo de mantenimiento, todo sin detener las campañas de marketing activas en los 8 sitios.

La solución: migración progresiva hacia una plataforma moderna y desacoplada

Abordamos el proyecto en tres frentes complementarios, permitiendo que el negocio siguiera operando mientras transformábamos la infraestructura y el código.

1. Migración de infraestructura: de DigitalOcean a AWS (S3 + CloudFormation)

El primer paso fue separar el contenido estático del dinámico y asegurar una entrega rápida y confiable a nivel global.

  • Extracción de assets: todas las imágenes, PDFs y recursos multimedia se trasladaron a Amazon S3, organizados por dominio y tipo de contenido.
  • CDN con CloudFront: configuramos distribuciones de Amazon CloudFront para cada dominio, reduciendo la latencia para visitantes internacionales.
  • Infraestructura como código: utilicé AWS CloudFormation para definir y validar el aprovisionamiento de buckets, políticas de acceso y distribuciones, garantizando reproducibilidad y revisiones de seguridad antes de cualquier cambio.
  • Verificación de suministro: implementé comprobaciones automatizadas (checksums y pruebas de accesibilidad) para confirmar que los 8 sitios servían correctamente desde el nuevo origen sin romper rutas antiguas.

2. Refactorización del frontend: del monolito Laravel a Next.js

Paralelamente a la migración de assets, extraje el frontend del monolito Blade y lo reescribí como una aplicación moderna en Next.js.

  • Renderizado híbrido: combinamos SSR para páginas de alta demanda (home, detalles de habitaciones) con ISR (Incremental Static Regeneration) para contenido que cambia con poca frecuencia, aliviando la carga del backend.
  • Arquitectura multidominio unificada: con Next.js configuramos un middleware que detecta el dominio solicitado y sirve la skin correspondiente (colores, logos, tipografías) desde un solo código base. Así, un solo deploy actualiza los 8 sitios.
  • Colaboración en la migración: apoyé directamente la extracción de la lógica de presentación del antiguo proyecto Laravel, transformando las vistas Blade en componentes React reutilizables.

3. Segunda fase: adopción de TypeScript y Tailwind CSS

Una vez estabilizada la nueva plataforma en Next.js, lideré una segunda migración para elevar la calidad y velocidad de desarrollo.

  • TypeScript: tipamos todo el proyecto, capturando errores en tiempo de compilación y documentando las propiedades de los componentes. Esto redujo los bugs en producción relacionados con datos de API.
  • Tailwind CSS: reemplazamos hojas de estilo tradicionales por utilidades de Tailwind, alineando el diseño con la guía de marca de Oasis y acelerando la creación de nuevas páginas estacionales.

4. Mantenimiento proactivo de código y Google Tag Manager

Paralelamente asumí la responsabilidad continua de:

  • Mantenimiento de código: corrección de incidencias, actualización de dependencias y optimización de bundles.
  • Gobierno de Google Tag Manager: centralicé y normalicé los contenedores GTM. Implementé una capa de datos única para los 8 dominios, eliminando píxeles duplicados y asegurando que los eventos de conversión (reservas, clics en teléfono) se dispararan con precisión. Esto mejoró la confiabilidad de los reportes de marketing y facilitó el lanzamiento de nuevas campañas sin intervención del equipo de desarrollo.

Resultados: una plataforma, 8 marcas, rendimiento 5x superior

La transformación trajo métricas contundentes:

  • Velocidad de carga: el tiempo de First Contentful Paint pasó de 3.8s a 0.9s en promedio, gracias al CDN y al SSR de Next.js.
  • Reducción de costos: el gasto mensual en servidores disminuyó un 40 % al eliminar el sobreaprovisionamiento y usar servicios gestionados de AWS.
  • Mantenimiento ágil: un solo desarrollador puede ahora gestionar los 8 sitios, cuando antes se requería un equipo de tres.
  • Tracking confiable: la normalización de GTM eliminó discrepancias entre los datos de Google Analytics y el motor de reservas, aumentando la confianza del equipo de marketing.
  • Tiempo de publicación de contenido: actualizar una imagen o un texto en los 8 dominios pasó de horas a minutos, gracias a la arquitectura de componente único.

Tecnologías utilizadas

  • Frontend: Next.js 14, React 18, TypeScript, Tailwind CSS
  • Infraestructura: AWS S3, CloudFront, CloudFormation (IaC)
  • Backend (legado migrado): Laravel (PHP) como API temporal durante la transición
  • Marketing: Google Tag Manager (multiconfiguración), Google Analytics 4
  • DevOps: GitHub Actions para CI/CD, pruebas automatizadas con Jest y Cypress

¿Gestionas múltiples sitios con tecnología heredada?

Centralizar dominios bajo una sola base de código moderna puede reducir costos y disparar la velocidad de tu equipo. Contáctame para una auditoría gratuita de tu infraestructura.