We consolidated the entire content infrastructure onto Sanity (chosen for its real-time collaboration, custom Studio, and flexible content relationships — ideal for the complex property-room-restaurant-spa content hierarchy) with Next.js front-ends — over 14 weeks. (1) Unified Property Content Model: comprehensive hospitality content architecture. Property content type: name (localised), description (localised — short and long versions), star rating, location (latitude/longitude, address, neighbourhood description), contact information, and references to: room types (each with name, description, imagery, amenities, occupancy, view type — all localised), restaurants (name, cuisine type, description, chef reference, menu reference, hours, dress code — localised), spa (description, treatment menu reference, facilities, hours — localised), amenities (structured list with icons and descriptions — localised), and local area guides (attractions, transportation, neighbourhood descriptions — localised). All imagery managed in Cloudinary with property-specific transformation presets. (2) OTA Content Syndication: centralised content distributed to all OTA platforms. Booking.com: property content pushed via Booking.
com Connectivity API — descriptions, room types, amenity lists, and imagery automatically syndicated from Sanity. Expedia: content pushed via Expedia Partner Central API. Google Hotel Center: structured data feed for Google Hotel Search — property information, room rates, and imagery. All OTA content updated automatically when property content changes in Sanity — eliminating the 84+ separate manual content entries. Content quality: consistent across all platforms (same descriptions, same imagery quality, same amenity accuracy). (3) Translation Workflow: integrated multilingual content management. 8 locales: ca-ES, es-ES, en-GB, fr-FR, de-DE, it-IT, pt-PT, ru-RU. Translation integration: Phrase TMS connected to Sanity — new or updated content automatically sent for translation. In-context review: translators see their translations rendered in the actual page layout via Sanity Preview. Translation memory: hospitality-specific terminology (room types, amenity descriptions, dining concepts) stored for consistency. Translation turnaround: 5 business days for all 8 languages (from 3-4 weeks).
(4) Restaurant and Spa Content Integration: unified content management for all F&B and wellness. Menu content type: structured menu with sections (starters, mains, desserts, beverages), items (name, description, price, dietary flags — vegan, vegetarian, gluten-free — and EU FIC allergen declarations for all 14 allergens — localised), and seasonal variants. Allergen compliance: mandatory allergen fields with validation — menus cannot be published without complete allergen information (addressing the previous compliance gap). Menu publishing: website, mobile app, and in-restaurant tablet displays — all from the same Sanity content. TheFork integration: restaurant descriptions and menu highlights syndicated to TheFork via API. (5) Next.js Performance: optimised booking experience. Architecture: shared Next.js codebase serving brand.com, individual property pages, and restaurant/spa microsites. ISR: property pages regenerate on content change (under 60 seconds from publish to live). Performance: LCP of 1.1-1.4 seconds across all pages and locales (from 3.2-8.1 seconds).
Booking integration: headless booking engine (connected via API) with optimised mobile checkout — reducing booking abandonment. Core Web Vitals: 100% pages passing. Image delivery: Cloudinary with responsive images (WebP/AVIF), lazy loading, and property-specific hero image treatments.