---
title: "La plataforma web corporativa de Globalia · Polargate"
description: "Globalia, el grupo turístico español, tenía los datos de su gente en Microsoft 365 y su web pública por otro lado. Polargate construyó una sola plataforma web sobre…"
url: https://polargate.ai/es/work/corporate-web-platform
locale: es
publisher: POLARGATE S.L.
---
- [Polargate](https://polargate.ai/es)
- [Proyectos](https://polargate.ai/es/work)
- Globalia Viajes y turismo

# La plataforma web corporativa de Globalia

Globalia, el grupo turístico español, tenía los datos de su gente en Microsoft 365 y su web pública por otro lado. Polargate construyó una sola plataforma web sobre un único repositorio: el directorio de empleados sincronizado desde Microsoft 365, una tarjeta de visita digital con pases de Apple Wallet y Google Wallet, y la web pública del grupo, hecha legible para los rastreadores de IA sin rehacerla. Pedro Ciordia trabaja en Globalia, así que esto es facturación con una parte vinculada y no un cliente ganado en el mercado abierto.

En corto
Polargate construyó la plataforma web corporativa de Globalia, el grupo turístico español: la plataforma interna, el directorio de empleados y la web pública del grupo sobre un mismo repositorio. Pedro Ciordia trabaja en Globalia, así que este proyecto es facturación con una parte vinculada y no un cliente ganado en el mercado abierto. El directorio se sincroniza desde Microsoft 365 con consultas delta de Graph y un proceso reanudable que continúa donde lo dejó la ejecución anterior, y hoy tiene decenas de miles de empleados activos tras tres capas de privacidad. Cada empleado tiene una tarjeta de visita digital con pases de Apple Wallet y Google Wallet firmados en servidor, y cada marca del grupo se asigna por dominio de correo. En la web pública, un middleware de borde sirve contenido real a los rastreadores: una noticia pasó de 14 caracteres a 11.421, sin migrar a generación estática.
1
repositorio para la plataforma interna, el directorio y la web pública

11.421
caracteres de contenido real que un rastreador de IA recibe de una noticia

707
artículos del histórico de noticias ya legibles por los rastreadores de IA

39
tablas con RLS activa y cero errores en el diagnóstico de agosto de 2026

## El problema

Globalia tiene varias marcas de consumo, y los datos de su gente vivían en Microsoft 365 mientras la web pública vivía por otro lado. El grupo necesitaba un directorio de empleados que siguiera el ritmo de Microsoft 365 a escala de decenas de miles de personas, una tarjeta y una identidad por marca, y una web pública cuyo histórico de noticias pudieran leer y citar los asistentes a los que hoy se pregunta en lugar de a un buscador.

## Qué construimos

Polargate lo construyó todo como una sola plataforma web sobre un único repositorio, así que la parte interna y la web pública comparten código, compilación y despliegue. La sincronización del directorio se rehízo sobre consultas delta de Microsoft Graph y se hizo reanudable, con el enlace de continuación guardado y presupuesto de tiempo por ejecución, y los empleados entran con su propia cuenta de Microsoft 365, así que las cuentas siguen bajo el control del grupo. El directorio aplica privacidad en tres capas y sirve los avatares firmados y con caducidad. Encima va la tarjeta de visita digital: se auto-provisiona desde el directorio, la reclama el empleado al entrar por SSO sin que cambie su enlace público, con los pases de Wallet firmados en servidor y los datos de contacto servidos solo contra un token de acceso firmado. Cada marca del grupo se asigna por dominio de correo. En la web pública, un middleware de borde inyecta contenido real solo para los rastreadores, sin migrar a generación estática y sin tocar la aplicación.

## El resultado

El directorio tiene hoy decenas de miles de empleados activos, al día con Microsoft 365 ejecución tras ejecución. En la web pública, una noticia pasó de 14 caracteres de contenido legible por un rastreador a 11.421, y 707 artículos del histórico quedaron legibles. En el diagnóstico de agosto de 2026 la base de datos mostraba 39 tablas con RLS activa y cero errores, los avisos de los advisors de seguridad resueltos y las políticas RLS consolidadas en una por rol y acción. Antes del despliegue: typecheck, 18 tests, la compilación web y la de la app en verde, y 20 rutas revisadas en escritorio y móvil. Las nueve primeras tarjetas se dieron de alta a mano para directivos y funcionan de punta a punta.

Stack

- Vite
- React
- TypeScript
- Tailwind CSS
- shadcn/ui
- Supabase
- PostgreSQL
- Deno
- Microsoft 365
- Microsoft Entra ID
- Vercel

## El contexto

Globalia es un grupo turístico español con varias marcas de consumo. Los datos de su gente estaban en Microsoft 365 y su web pública, por otro lado. Polargate construyó la plataforma web corporativa del grupo: una plataforma web interna con el directorio de empleados sincronizado desde Microsoft 365, una tarjeta de visita digital con pases de Apple Wallet y Google Wallet, y la web pública del grupo, todo sobre un mismo repositorio. Pedro Ciordia trabaja en Globalia, así que este proyecto es ingreso vinculado y no un cliente ganado en el mercado abierto.
Un solo repositorio no es un detalle. La parte interna y la web pública comparten el mismo código, la misma compilación y el mismo despliegue, así que un cambio de marca se hace una vez y no una por sitio. El stack es React, Vite, TypeScript, Tailwind y shadcn/ui en el frontend, Supabase en el backend (Postgres con RLS, Edge Functions en Deno, Storage y Auth), Microsoft Graph para el directorio y el inicio de sesión, Apple PassKit y la API de Google Wallet para los pases, y Vercel como hosting. El proyecto nació con andamiaje de una herramienta de scaffolding visual y hoy está completamente fuera de ella, con el backend consolidado en un único Supabase propio.

## El directorio: consultas delta y una sincronización reanudable

Los empleados entran con su propia cuenta de Microsoft 365, y el directorio lee de ese mismo Microsoft 365, así que las cuentas siguen bajo el control del grupo y ningún dato de una persona se vuelve a teclear en un segundo sistema.
La sincronización usa consultas delta de Microsoft Graph, así que cada ejecución trae solo lo que ha cambiado en lugar de arrastrar el directorio entero otra vez.
La sincronización es reanudable por diseño: el enlace de continuación se guarda, cada ejecución tiene su presupuesto de tiempo y la siguiente sigue donde lo dejó la anterior en lugar de empezar de cero. Eso es lo que permite que una sincronización de este tamaño termine. Hoy tiene decenas de miles de empleados activos.
Los duplicados se resuelven con una regla de fusión por identidad, reversible, que une los alias de una misma persona y nunca fusiona a dos personas distintas que coincidan de nombre.

### Tres capas de privacidad

Un directorio de empleados es dato personal, así que no es un solo conjunto de datos. Son tres. La capa pública lleva la información profesional. La segunda, el contacto corporativo. La tercera, los datos personales, está detrás de un permiso explícito. Los avatares se sirven firmados y con caducidad, para que la URL de una foto no sea una puerta permanente.

## La tarjeta de visita digital

Cada empleado tiene su página pública de tarjeta, con ruta espejo en inglés, descarga de vCard, botones de Apple Wallet y Google Wallet y un código QR de marca. Las tarjetas se auto-provisionan desde el directorio y se reclaman solas cuando el empleado entra por SSO, sin que cambie su enlace público, así que lo que ya esté impreso sigue valiendo.

### Los pases se firman en el servidor, nunca en el navegador

Los de Apple, con manifiesto con hash por fichero y firma PKCS#7. Los de Google, con un JWT firmado con RS256. Los pases usan QR, no NFC.
Los datos de contacto solo se sirven con un token de acceso firmado, estable por tarjeta para que los QR impresos no caduquen. El contrato de campos funciona por lista blanca, con campos prohibidos explícitos, el móvil desactivado por defecto y una función de saneado como defensa en profundidad. Las tarjetas no se indexan.
La vCard se genera conforme a RFC 2426, con la foto incrustada en base64 porque iOS no importa fotos por URL, y con una ayuda visual que enseña al usuario cuál es el botón que de verdad guarda el contacto.

## Multiempresa por dominio de correo

Globalia es un grupo de varias empresas, así que la plataforma es multiempresa. Cada marca se asigna por dominio de correo y lleva su propio nombre e identidad en la tarjeta. El control de acceso es por roles y está verificado, y el rol mínimo se asigna solo en el primer inicio de sesión mediante un disparador de base de datos.

## La web pública, legible para los asistentes de IA

Una aplicación web moderna se pinta en el navegador, y casi ningún rastreador de IA ejecuta JavaScript. El lector y el rastreador no reciben la misma página, y cerrar esa distancia era el trabajo en la web pública.
Lo arreglamos sin migrar la web a generación estática. El middleware de borde inyecta, solo para los rastreadores, título, descripción, canonical, hreflang, Open Graph, JSON-LD y un cuerpo real con encabezado y párrafos. Los humanos siguen recibiendo la aplicación intacta, y ni el build ni la app cambian.
Lo que importa son las cifras. Una noticia pasó de 14 caracteres de contenido legible a 11.421. En seis rutas y sus espejos de idioma, el contenido visible para un rastreador pasó de unos 14 a 80 caracteres a 756 en portada y de 200 a 260 en interiores. 707 artículos del histórico quedaron legibles.

## Qué más lleva dentro

Las notificaciones no hacen fan-out: una notificación es una única fila con audiencia, y el feed de cada usuario se calcula al vuelo respetando sus preferencias y los tipos obligatorios. Hay un tablón visual de beneficios y ofertas, publicado por el equipo de personas y visible para toda la plantilla. La plataforma es además una PWA instalable que avisa al usuario cuando hay actualización, y usa Supabase Realtime en lugar de sondeo periódico.

## Dónde está hoy

Medido, no proyectado. En el diagnóstico de agosto de 2026: 39 tablas con RLS activa y cero errores, los avisos de los advisors de seguridad resueltos y las políticas RLS consolidadas en una por rol y acción, que se lee mejor y cuesta menos de ejecutar. La limpieza de código muerto se llevó 27 componentes y 16 dependencias. En esa misma fase se endurecieron las cabeceras de seguridad y el TLS en el borde.
De peso: recodificar los 153 fotogramas del hero de portada a WebP lo bajó un 38% sin cambio visual, un componente pasó de 739 KB a 3,6 KB al sustituir un import completo de una librería de iconos, y una librería de gráficos de 423 KB se movió a carga diferida.
Antes del despliegue: typecheck, 18 tests, la compilación web y la de la app en verde, y 20 rutas revisadas en escritorio y móvil.

[Build →](https://polargate.ai/es/services/build) · [Grow →](https://polargate.ai/es/services/grow) · [Grupos corporativos →](https://polargate.ai/es/for/corporate)

FAQ

## Preguntas sobre este proyecto

¿Podemos sincronizar el directorio de empleados desde Microsoft 365 sin copiarlo a mano? Sí, con consultas delta de Microsoft Graph: cada ejecución trae solo lo que ha cambiado, no el directorio entero. Donde casi todo el mundo se equivoca es en el tamaño. Una sincronización que se reinicia en cada ejecución nunca termina a escala de un grupo grande, así que esta se hizo reanudable: el enlace de continuación se guarda, cada ejecución tiene su presupuesto de tiempo y la siguiente sigue donde lo dejó la anterior. Hoy mantiene sincronizados decenas de miles de empleados activos. Los empleados entran con su propia cuenta de Microsoft 365, y el directorio sirve los datos en tres capas de privacidad, así que la información profesional, el contacto corporativo y los datos personales no son el mismo conjunto de datos.
¿Es seguro dar a cada empleado una tarjeta de visita en Apple Wallet y Google Wallet? Lo es, si la firma se queda en el servidor y la tarjeta se trata como lo que es, una página pública. Los pases de Apple se firman con manifiesto y PKCS#7, los de Google con un JWT firmado con RS256, y ninguna clave de firma llega nunca al navegador. Los datos de contacto solo se sirven con un token de acceso firmado, estable por tarjeta para que los QR impresos sigan funcionando. Los campos que pueden aparecer van por lista blanca con campos prohibidos explícitos, el móvil está desactivado por defecto y las tarjetas no se indexan.
¿Hay que rehacer la web en HTML estático para que los asistentes de IA la lean? No. La generación estática es la mejor respuesta a largo plazo, pero no es la única, y sobre una web corporativa viva pocas veces es la más rápida. Aquí, el middleware de borde inyecta título, descripción, canonical, hreflang, Open Graph, JSON-LD y un cuerpo real con encabezado y párrafos, solo para los rastreadores. Los humanos siguen recibiendo la aplicación intacta, y ni el build ni la aplicación cambian. Resultado medido: una noticia pasó de 14 caracteres de contenido legible a 11.421, y 707 artículos del histórico quedaron legibles. Conviene mirar antes si tus reglas de robots excluyen a los rastreadores de IA, porque muchas todavía lo hacen.

## Proyectos relacionados

Empresa de servicios B2B, Europa

### Endurecer una web corporativa que un filtro DNS bloqueaba

El filtro DNS corporativo de uno de sus clientes rechazaba el dominio de nuestro cliente, y eso le impedía operar como proveedor de esa empresa. La web no estaba comprometida ni en listas negras: estaba sin endurecer. Polargate la diagnosticó en una semana, migró el gestor de contenidos a un hosting bajo control del cliente y la endureció allí, porque el panel de administración era el único acceso disponible.
2026 Ver el caso

[Endurecer una web corporativa que un filtro DNS bloqueaba](https://polargate.ai/es/work/security-hardening)

Global Dynamic Security Group

### Marca y web bilingüe para Global Dynamic Security Group

Identidad de marca, manual de identidad de 15 páginas y web corporativa bilingüe (español e inglés) para Global Dynamic Security Group (GDS), un grupo de seguridad privada en República Dominicana, entregado como proyecto cerrado a precio fijo.
2026 Ver el caso

[Marca y web bilingüe para Global Dynamic Security Group](https://polargate.ai/es/work/security-group-brand-and-site)

NationwideLegal

### El CRM de NationwideLegal, sobre Odoo 18

NationwideLegal lleva su operación comercial en un CRM que Polargate construyó sobre Odoo 18 Enterprise y del que sigue llevando la dirección técnica: un único módulo propio, cinco modelos nuevos, los permisos rehechos alrededor de cómo vende el equipo de verdad y una verificación contra producción después de cada despliegue.
2026 Ver el caso

[El CRM de NationwideLegal, sobre Odoo 18](https://polargate.ai/es/work/legal-services-crm-and-technology-direction)

INITIATE

## Arranca el motor

Cuéntanos qué estás construyendo en unas pocas preguntas cortas. Un ingeniero senior responde por escrito en 48 horas laborables con una primera lectura de alcance, plazos y precio.
[Empieza tu proyecto](https://polargate.ai/es/start) · [Habla con nosotros](https://polargate.ai/es/start#static-brief-heading)
