Case · Reizen en toerisme
Globalia.
Globalia, de Spaanse reisgroep, wilde haar mensen en haar publieke website samenbrengen op één platform. Polargate bouwde dat op één repository: een medewerkersgids die synchroon loopt met Microsoft 365, een digitaal visitekaartje met passen voor Apple Wallet en Google Wallet, en de publieke site van de groep, leesbaar gemaakt voor AI-crawlers zonder die opnieuw te bouwen.

In het kort
- Klant
- Globalia
- Sector
- Reizen en toerisme
- Jaar
- 2026
- Live site
- globalia.com
- Stack
- ViteReactTypeScriptTailwind CSSshadcn/uiSupabasePostgreSQLDenoMicrosoft 365Microsoft Entra IDVercel
01 · Globalia
De uitdaging.
Globalia heeft meerdere consumentenmerken en wilde dat haar interne platform en haar publieke website samen een stap verder gingen. De groep wilde een medewerkersgids die gelijke tred houdt met Microsoft 365 op de schaal van een grote groep, één kaartje en één identiteit per merk, en een publieke site waarvan het nieuwsarchief gelezen en geciteerd kan worden door de assistenten waar mensen nu aan vragen wat ze vroeger intypten.
Bijvoorbeeld: 99 geautomatiseerde tests voor de module, vanaf nul. NationwideLegal
02 · Globalia
Wat we bouwden.
Polargate bouwde het geheel als één webplatform op één repository, zodat het interne deel en de publieke site dezelfde code, build en deploy delen. De synchronisatie van de gids draait op Microsoft Graph delta-queries en is hervatbaar, met een opgeslagen vervolgverwijzing en een tijdsbudget per run, en medewerkers melden zich aan met hun eigen Microsoft 365-account, zodat de accounts in beheer van de groep blijven. De gids kent drie privacylagen en serveert avatars ondertekend en met vervaltijd. Daarbovenop zit het digitale visitekaartje: het wordt vanuit de gids aangemaakt, de medewerker claimt het bij de eerste keer aanmelden via SSO zonder dat de publieke link verandert, de Wallet-passen worden op de server ondertekend en contactgegevens komen alleen vrij tegen een ondertekend toegangstoken. Elk merk van de groep wordt toegewezen op e-maildomein. Op de publieke site injecteert edge middleware echte inhoud, uitsluitend voor crawlers, zonder migratie naar statische generatie en zonder wijziging aan de applicatie.

Bijvoorbeeld: 2 talen live op de site, Spaans en Engels. Global Dynamic Security Group
03 · Globalia
Het resultaat.
De gids loopt run na run gelijk met Microsoft 365. Op de publieke site geeft één nieuwsbericht crawlers nu 11.421 tekens leesbare inhoud, en zijn 707 gearchiveerde artikelen leesbaar. In de controle van augustus 2026 telde de database 39 tabellen met row-level security en nul fouten, met de row-level security-policies samengebracht tot één policy per rol en actie. Voor de deploy: typecheck, 18 tests, de webbuild en de appbuild groen, en 20 routes nagelopen op desktop en mobiel.
- repository voor het interne platform, de gids en de publieke site
- 1
- tekens echte inhoud die een AI-crawler van een nieuwsbericht krijgt
- 11.421
- gearchiveerde nieuwsartikelen die nu leesbaar zijn voor AI-crawlers
- 707
- tabellen met row-level security en nul fouten in de controle van augustus 2026
- 39
Bijvoorbeeld: 6 gebruikelijke beveiligingsheaders die vooraf ontbraken. B2B-dienstverlener, Europa
04 · Globalia
Hoe we het deden.
Bijvoorbeeld: 11 modules opgeleverd in fase 1. Elite Smart Build
De context
Globalia is een Spaanse reisgroep met meerdere consumentenmerken. Polargate bouwde het corporate webplatform van de groep: een intern webplatform met de medewerkersgids die synchroon loopt met Microsoft 365, een digitaal visitekaartje met passen voor Apple Wallet en Google Wallet, en de publieke site van de groep, alles in één repository.
Die ene repository is geen detail. Het interne platform en de publieke site delen dezelfde code, dezelfde build en dezelfde deploy, dus een merkwijziging gebeurt één keer in plaats van per site. De stack is React, Vite, TypeScript, Tailwind en shadcn/ui aan de voorkant, Supabase aan de achterkant (Postgres met row-level security, Edge Functions op Deno, Storage en Auth), Microsoft Graph voor de gids en het aanmelden, Apple PassKit en de Google Wallet API voor de passen, en Vercel als hosting. De backend draait in één eigen Supabase-project.
De gids: delta-queries en een hervatbare synchronisatie
Medewerkers melden zich aan met hun eigen Microsoft 365-account, en de gids leest uit datzelfde Microsoft 365, zodat de accounts onder beheer van de groep blijven en niemands gegevens opnieuw in een tweede systeem worden getypt.
De synchronisatie draait op Microsoft Graph delta-queries, dus elke run haalt alleen op wat is gewijzigd in plaats van de hele gids opnieuw.
De synchronisatie is van opzet hervatbaar: de vervolgverwijzing wordt bewaard, elke run krijgt een tijdsbudget en de volgende run gaat verder waar de vorige stopte in plaats van opnieuw te beginnen. Alleen zo raakt een synchronisatie op de schaal van een grote groep klaar.
Dubbelingen worden opgelost met een omkeerbare samenvoegregel op identiteit, die de aliassen van één persoon samenbrengt en nooit twee verschillende mensen samenvoegt die toevallig dezelfde naam hebben.
Drie privacylagen
Een medewerkersgids is persoonsgegeven, dus het is niet één dataset. Het zijn er drie. De publieke laag bevat professionele informatie. De tweede bevat zakelijke contactgegevens. De derde, de persoonlijke gegevens, zit achter een expliciete toestemming. Avatars worden ondertekend en met vervaltijd geserveerd, zodat de URL van een foto geen permanente deur is.
Het digitale visitekaartje
Elke medewerker heeft een publieke kaartpagina, met een spiegelroute in het Engels, een vCard-download, knoppen voor Apple Wallet en Google Wallet en een QR-code in de huisstijl. Kaartjes worden vanuit de gids aangemaakt en claimen zichzelf zodra de medewerker zich via SSO aanmeldt, waarbij de publieke link niet verandert, dus wat al gedrukt is blijft geldig.
Passen worden op de server ondertekend, nooit in de browser
Apple-passen krijgen een manifest met een hash per bestand en een PKCS#7-handtekening. Google-passen krijgen een JWT die met RS256 is ondertekend. De passen werken met QR, niet met NFC.
Contactgegevens komen alleen vrij tegen een ondertekend toegangstoken, stabiel per kaart zodat gedrukte QR-codes niet verlopen. Het veldcontract werkt met een allowlist, met expliciet verboden velden, het mobiele nummer standaard uit en een opschoonfunctie als extra verdedigingslaag. Kaartjes worden niet geïndexeerd.
De vCard volgt RFC 2426, met de foto in base64 ingesloten omdat iOS geen foto's via een URL importeert, en de pagina wijst visueel aan welke knop het contact opslaat.
Meerdere bedrijven, op e-maildomein
Globalia bestaat uit meerdere bedrijven, dus het platform is multi-bedrijf. Elk merk wordt toegewezen op e-maildomein en draagt zijn eigen naam en identiteit op het kaartje. De toegang is rolgebaseerd en geverifieerd.
De publieke site, leesbaar voor AI-assistenten
Een moderne webapplicatie wordt in de browser opgebouwd, en vrijwel geen enkele AI-crawler voert JavaScript uit. De lezer en de crawler krijgen dus niet dezelfde pagina, en dat gat sluiten was de opdracht op de publieke site.
Dat hebben we gedaan zonder de site naar statische generatie te migreren. Edge middleware injecteert, uitsluitend voor crawlers, title, description, canonical, hreflang, Open Graph, JSON-LD en een echte body met een kop en alinea's. Mensen krijgen nog steeds de applicatie zoals die was, en noch de build noch de app is veranderd.
De cijfers zijn het punt. Eén nieuwsbericht geeft een crawler nu 11.421 tekens leesbare inhoud. Over zes routes en hun taalspiegels krijgen crawlers nu 756 tekens op de homepage en 200 tot 260 op de onderliggende pagina's. 707 gearchiveerde artikelen zijn leesbaar.
Wat er verder in zit
Meldingen worden niet uitgewaaierd: één melding is één record met een doelgroep, en de feed van elke gebruiker wordt ter plekke berekend, met respect voor de voorkeuren en de verplichte typen. Er is een visueel bord met personeelsvoordelen en aanbiedingen, gepubliceerd door het HR-team en zichtbaar voor iedereen. Het platform is bovendien een installeerbare PWA die de gebruiker waarschuwt bij een update, en gebruikt Supabase Realtime in plaats van periodiek pollen.
Waar het nu staat
Gemeten, niet geprojecteerd. In de controle van augustus 2026: 39 tabellen met row-level security en nul fouten, en de row-level security-policies samengebracht tot één policy per rol en actie, wat leesbaarder is en goedkoper draait.
Over gewicht: het hercoderen van de 153 frames van de hero op de homepage naar WebP scheelde 38% zonder zichtbaar verschil, één component ging van 739 KB naar 3,6 KB door alleen de iconen te laden die het gebruikt, en een grafiekenbibliotheek van 423 KB is naar lazy loading verplaatst.
Voor de deploy: typecheck, 18 tests, de webbuild en de appbuild groen, en 20 routes nagelopen op desktop en mobiel.
FAQ
Vragen over dit project.
Kunnen we onze medewerkersgids vanuit Microsoft 365 synchroniseren zonder handmatig kopiëren?
Is het veilig om elke medewerker een visitekaartje in Apple Wallet en Google Wallet te geven?
Moeten we onze website eerst als statische HTML herbouwen voordat AI-assistenten die kunnen lezen?
Bijvoorbeeld: 100 / 100 / 100 Lighthouse mobiel: toegankelijkheid, best practices, SEO. KD.tech
Zelfde sector
Meer werk in deze sector.
Andere projecten voor bedrijven die tegen dezelfde problemen aanlopen.

NationwideLegal
Juridische ondersteunende dienstverleningHet CRM van NationwideLegal, op Odoo 18
313 ms om de nieuwe velden over 400 echte productierecords te lezen
BuildCare

Global Dynamic Security Group
Particuliere beveiliging, Dominicaanse RepubliekMerk en tweetalige site voor Global Dynamic Security Group
15 pagina's in het huisstijlhandboek
Build
Bijvoorbeeld: 536/536 vertaalsleutels aanwezig in elk van de drie talen. Estepona Golf
Volgend project
B2B-dienstverlener, Europa.
Zakelijke dienstverlening
Een bedrijfswebsite hardenen die door een DNS-filter werd geblokkeerd
Bijvoorbeeld: 4 dagen van diagnose tot de nieuwe backend draaide. Concert Music Festival
Beginnen
Vertel ons wat je wilt bouwen.
Websites, apps, systemen op maat en AI voor bedrijven die ze binnen weken in productie nodig hebben. Vul het formulier in of plan een gesprek van 30 minuten: een senior engineer antwoordt binnen twee werkdagen met een eerste inschatting van scope, planning en prijs.
Eerste stap
Twee weken om scope, architectuur en prijs vast te leggen voordat er iets wordt gebouwd.
Geen prijslijst. Je krijgt na een kort gesprek een schriftelijke offerte op maat.
Daarna, om te bouwen, altijd tegen een vaste prijs
Nog niet zover?
- AI-zichtbaarheidsauditEenmalig, vaste prijs.
