Proyectos - NonBugs Factory

LatinSpots

Cómo reescribimos la plataforma editorial de 28 años de LatinSpots, preparada para los próximos 28.

LatinSpots

Cliente

LatinSpots — Plataforma editorial sobre publicidad y marketing en Iberoamérica. Organiza el festival El Ojo de Iberoamérica.

Industria

Medios & Editorial · Publicidad · Eventos.

Servicios

Ciberseguridad · Plataforma editorial a medida · Migración de datos · Infraestructura cloud · Soporte continuo.

Stack principal

Laravel · MySQL · Kubernetes · AWS · GitLab CI.

_EL CLIENTE

28 años cubriendo la creatividad iberoamericana

LatinSpots nació en 1998 como un medio para conectar a la industria publicitaria iberoamericana. Casi tres décadas después, es la referencia editorial de la región: revista bimestral (al cierre de este proyecto íbamos por la edición #191), portal de noticias diario, archivo audiovisual con miles de piezas, perfiles de directores creativos, capacitaciones, jobs board y un activo propio que terminó definiendo al sector — el festival El Ojo de Iberoamérica.

Para alguien fuera de la industria, LatinSpots puede parecer un sitio web. Para alguien adentro, es donde se publican las decisiones, los lanzamientos y los premios de las agencias y anunciantes más relevantes de habla hispana y portuguesa. A esa escala editorial, cada decisión técnica tiene consecuencias prácticas: cómo se publica una nota, cómo se cobra una suscripción, cómo se sube una pieza al archivo, cómo se gestiona un anuncio.

_CÓMO LLEGAMOS

Una recomendación, un trabajo puntual, una confianza ganada

No empezamos con el rediseño. Empezamos con un problema concreto y acotado: una intervención de ciberseguridad. Nos llegó la recomendación trabajando con un partner de infraestructura cloud, y entramos a resolver algo que tenía que estar resuelto rápido.

La solución fue inmediata y satisfactoria. Eso abrió la conversación más grande: actualizar y unificar todo el ecosistema digital de LatinSpots. La confianza que abre un trabajo bien hecho en un alcance chico es la que permite proyectos largos. Es así como casi siempre empiezan las relaciones que duran.

_EL PUNTO DE PARTIDA

Varios sistemas que funcionaban, pero no entre sí

LatinSpots venía operando con varias plataformas custom construidas a lo largo del tiempo: una para la gestión de contenidos del portal, otra para producir la revista impresa, sistemas separados de suscripciones, y un módulo propio para administrar anuncios y espacios comerciales. Cada una resolvía bien su parte. El problema no era que estuvieran rotas; era que la suma no escalaba.

Cuando una marca quería pautar tanto en el portal como en la revista, había que coordinar dos sistemas. Cuando un suscriptor pasaba de un plan a otro, la gestión era doble. Cuando se publicaba una nota, había procesos paralelos para sitio y revista. Y arriba de todo eso, casi tres décadas de archivos: notas, piezas audiovisuales, perfiles, tapas, conferencias. Una memoria editorial que había que respetar y, al mismo tiempo, modernizar.

El driver del proyecto no era performance. El sitio anterior cargaba bien. El driver era otro: seguridad, escalabilidad, y abrir el camino para nuevos módulos sin romper lo que ya existía. LatinSpots quería innovar después de 28 años, y eso requería empezar por la base.

_LA DECISIÓN TÉCNICA

Por qué construimos un CMS a medida

La intuición de mercado en 2024 es ir a un CMS headless como Strapi, Sanity o Payload. Lo evaluamos en serio. No era el camino correcto para este cliente, por tres razones concretas.

El modelo de contenido no encaja

LatinSpots no publica solo “notas”. Publica piezas audiovisuales con metadata de agencia, anunciante y país; perfiles de creativos con cross-references entre sí y con sus piezas; rankings de festivales que se rearman cada año; reels con relaciones a conferencias; jobs con relaciones a empresas. Reproducir ese modelo en los SaaS headless implicaba forzarlo a caber en un contenedor que no fue pensado para él.

28 años de datos para migrar

El driver más importante: la memoria editorial. Casi tres décadas de notas, piezas, perfiles, ediciones de revista, jurados, premios. Migrar esa data a un SaaS headless habría implicado mapear estructuras propias de LatinSpots a las del proveedor — y aceptar que cada cambio futuro estuviera limitado por las decisiones de un tercero. Construir nuestro propio CMS preservaba la lógica de datos del cliente y nos daba el control de la migración.

Reglas de negocio específicas

Las suscripciones de LatinSpots no son las de cualquier medio: combinan acceso al portal, a la revista digital y a las conferencias de El Ojo. Los anuncios no se gestionan con un ad server externo, son parte del producto. Cada una de esas reglas habría requerido extensiones, hacks o middleware sobre un SaaS. En un CMS propio, son código nativo.

La decisión final: dos aplicaciones Laravel separadas — una para el sitio público, otra para el backoffice editorial — sobre una sola base de datos MySQL, todo desplegado en Kubernetes sobre AWS.

_ARQUITECTURA

Dos apps, una sola fuente de verdad

La separación entre el sitio público y el backoffice editorial es deliberada. Cada uno tiene patrones de uso, requerimientos de seguridad y velocidades de iteración distintos. Comparten la misma base, no la misma aplicación.

Amazon Web Services

Kubernetes

Sitio público

latinspots.com


Laravel + Blade

Server-side rendering

Optimizado para lectura masiva

Backoffice editorial

CMS interno


Laravel + Vite

SPA reactiva

Producción editorial

Base de datos

MySQL


28 años de data editorial

Estructura migrada y unificada

Cache

ElastiCache · Redis


Sesiones · queries calientes

Media · S3 + CloudFront

Archivo audiovisual


Videos · imágenes · PDFs históricos

Distribución global con cache de CDN

Piezas de 28 años

↓ Apps leen y escriben en MySQL↓ MySQL apoya queries en ElastiCache↓ Media se sirve desde S3 + CloudFront

El sitio público está construido sobre Laravel con vistas Blade y renderizado del lado del servidor. Optimizado para lectura masiva, indexación y carga rápida — es lo que ve cualquier lector que entra a latinspots.com.

El backoffice editorial es una aplicación Laravel separada, con frontend reactivo construido sobre Vite. Es donde el equipo editorial trabaja todos los días: produce notas, arma la revista, sube piezas, gestiona suscripciones y administra anuncios. Es un entorno con patrones de uso completamente distintos al sitio público, y por eso vive en su propio repo, con su propio despliegue.

Ambas aplicaciones comparten una base MySQL en AWS con casi tres décadas de data editorial unificada y migrada. ElastiCache (Redis) maneja sesiones y queries calientes; S3 + CloudFront sirve todo el archivo audiovisual con distribución global; SES envía las notificaciones de suscripciones. Todo orquestado sobre Kubernetes, con pipelines de GitLab CI que despliegan ambientes por branch.

_LA SOLUCIÓN

Una sola plataforma para todo el ecosistema

Captura del backoffice editorial de LatinSpots: editor de notas con herramientas de producción

Editor de notas con producción multiformato.

Captura del backoffice editorial de LatinSpots: gestión de piezas y revista

Gestión integrada de piezas, revista y catálogo.

_EL PRODUCTO PÚBLICO

El sitio donde se publica la creatividad iberoamericana

Vista desktop del sitio público latinspots.com
Vista mobile del sitio público latinspots.com
Visitar latinspots.com →

_RESULTADOS

Lo que cambió cuando todo quedó conectado

Plataforma unificada

Notas, revista, suscripciones, piezas, perfiles y anuncios viven en un solo sistema. El equipo editorial dejó de saltar entre plataformas para producir contenido.

28 años de archivo, intactos y accesibles

Toda la memoria editorial migrada y compatible con la nueva estructura. Las notas y piezas históricas siguen estando, mejor indexadas y mejor servidas.

Seguridad como prioridad

El proyecto arrancó por ciberseguridad y la mantuvo como eje. Arquitectura aislada por entornos, secretos gestionados fuera del código, permisos granulares en el backoffice.

Operación escalable bajo carga

Kubernetes con escalado horizontal, cache distribuido y CDN global. La plataforma está preparada para absorber picos de tráfico durante cobertura de festivales.

Terreno preparado para nuevos módulos

El cliente puede sumar funcionalidades nuevas — formatos, productos, integraciones — sin reescribir lo que ya existe. Algo que antes era un limitante hoy es una ventaja operativa, y el motivo por el que el proyecto sigue vivo: las mejoras continuas.

_LO QUE APRENDIMOS

Tres ideas que nos llevamos del proyecto

28 años de data son un activo, no un lastre

Muchos proyectos de modernización tratan la historia del cliente como un problema a resolver. La de LatinSpots era exactamente lo contrario: la memoria editorial es el producto. Migrar 28 años de archivo sin perder estructura ni relaciones no es opcional; es la condición. Diseñar la base de datos con eso en mente cambió toda la arquitectura.

Separar la app pública de la app interna paga rápido

Construirlas como dos aplicaciones Laravel distintas, con dos repos y dos despliegues, agrega complejidad inicial. Pero cada una puede evolucionar a su ritmo: el sitio público optimiza lectura y SEO; el backoffice optimiza productividad editorial. Cuando una se cae, la otra sigue funcionando. Cuando una necesita escalar, la otra no paga el costo.

Empezar chico para ganarse el proyecto grande

El proyecto completo de LatinSpots no se vendió en una reunión: se ganó resolviendo bien un trabajo acotado. Una intervención de ciberseguridad, respondida en tiempo y forma, abrió la conversación que terminó siendo una modernización completa. Para nosotros eso es parte del oficio: tomar el problema que el cliente trae hoy y resolverlo bien — la siguiente conversación llega sola.

_STACK

Tecnologías del proyecto

Sitio públicoLaravel + Blade
Backoffice editorialLaravel + Vite
Base de datosMySQL
CacheElastiCache · Redis
AlmacenamientoS3 + CloudFront
MailingAmazon SES
PagosMercado Pago · PayPal
OrquestaciónKubernetes + Docker
CI/CDGitLab Pipelines · Helm
HostingAWS

Liderado por

Franco Gregorio

CTO — NonBugs Factory

Lanzamiento: noviembre 2024 · Equipo: 2 backend, 2 frontend, 2 UI/UX, 1 PM, CPO, CTO · 8 minutos de lectura

El equipo no solo entendió nuestro problema de raíz, sino que nos acompañó en cada paso para construir una solución completa. Gracias a ellos, automatizamos procesos clave, ahorramos un montón de tiempo y logramos una gestión centralizada que antes era impensable.

Santiago Keller
FUNDADOR Y PRESIDENTE — LATINSPOTS Y EL OJO DE IBEROAMÉRICA

¿Tu operación es más compleja

de lo que un SaaS puede resolver?

Es donde mejor trabajamos. Entendemos el problema a fondo, diseñamos la arquitectura y construimos el software a medida que lo sostiene — pensado para escalar con tu negocio.

Agendar una reunión