Skip to content

PRD — Multi-Site Headless Platform · Savoy Signature Hotels

Next.js 16 (App Router + Turbopack) + Umbraco 17 (.NET 10 LTS) + Azure + Cloudflare

Section titled “Next.js 16 (App Router + Turbopack) + Umbraco 17 (.NET 10 LTS) + Azure + Cloudflare”

Version: 2.0
Date: 2026-03-04
Tech Lead: Rui Rosa
Project Manager: Sara Bica, Michelle Monteiro


Savoy Signature group is undertaking a full redesign of its digital presence with the development of 8 websites — 1 institutional group website and 7 hotel unit websites — built on a shared platform.

#WebsiteDomain (PROD)Type
1Savoy Signature (Group)savoysignature.comInstitutional / Aggregator
2Savoy Palacesavoysignature.com/savoypalacehotelHotel Unit
3Royal Savoysavoysignature.com/royalsavoyhotelHotel Unit
4Saccharum Hotelsavoysignature.com/saccharumhotelHotel Unit
5The Reserve Hotelsavoysignature.com/thereservehotelHotel Unit
6Calheta Beach Hotelsavoysignature.com/calhetabeachhotelHotel Unit
7Gardens Hotelsavoysignature.com/gardenshotelHotel Unit
8Hotel Nexthotelnext.ptHotel Unit

Note: Production domain strategy is TBD. The domains above are reference values. See 03_MultiSite_and_Domains.md for current status.

  1. Usability — Significant improvement in browsing experience
  2. Conversion — Increase direct bookings from each hotel unit’s channels
  3. Intuitive navigation — Fluid, conversion-oriented experience
  4. Visual differentiation — Each hotel reflects its own positioning with a unique visual identity
  5. Institutional content — The group website aggregates content and funnels users to hotel units

The platform follows a headless architecture where:

  • CMS (Backend): A single Umbraco 17 installation (.NET 10 LTS) manages content for all 8 sites
  • Frontend: Next.js 16 application (App Router + Turbopack) with SSR, sharing components and modules across sites
  • Hosting: Azure (Web Apps, SQL, Blob Storage)
  • CDN/Edge: Cloudflare with aggressive HTML caching and programmatic purge
  • Design System: Storybook for isolated component development and documentation
  • Booking Engine: Navarino Bookpoint calendar widget + redirect to Synxis external booking engine

External

Azure

Edge

HTTPS

Cache Miss

Content Delivery API

On Publish: Purge

Calendar Widget

Redirect with Query String

Cloudflare CDN

Next.js 16 SSR (Turbopack)

Umbraco 17 CMS

Azure SQL

Blob Storage

Synxis Booking Engine

Navarino Bookpoint Widget

User

Testing

Backend Development

Frontend Development

Design

Design Specs & Tokens

Isolated Components & Modules

Content Structure

Content Delivery API

Data Integration

Approved

Figma Designs

Storybook

Next.js 16 App

Umbraco 17 CMS

Content Types & API

Local Testing

DEV Environment

STAGE Environment

QA Environment

Production

The booking flow follows a redirect model:

  1. Each hotel site displays a booking bar with a Navarino Bookpoint calendar widget
  2. Users select dates, number of adults, children, and nights
  3. On “Book Now” click, the user is redirected to the external Synxis booking engine (be.synxis.com) with pre-filled query string parameters

Each hotel has unique Synxis identifiers (Hotel ID, Chain ID) configured per site in the CMS.

Example redirect URL:

https://be.synxis.com/?Hotel=7990&Chain=25136&locale=pt-PT&arrive=2026-04-15&nights=3&adult=2&child=0

Detailed specification in 19_Booking_Engine_Integration.md

RoleNameContact
Project ManagerSara Bica, Michelle Monteirosara.bica@wycreative.com
Tech LeadRui Rosarui.rosa@wycreative.com
Functional AnalystBernardo-
Design Lead / UX SupervisorLiliana Moreiraliliana.moreira@wycreative.com
UX/UIJoana Catarina
FE DevelopersRui Rosa, Hugo Coutinho, Sérgio Fernandes
BE DevelopersRui Rosa, Ricardo Santos
NameRole
Sílvia DiasMarketing Director — high-level oversight
Benjamin CampoverdeDigital Marketing Manager — project lead
Carolina MarquesDigital Marketing
Carlota SousaDigital Marketing

This PRD is designed to serve as the source of truth for AI-assisted development using Agentic AI (Claude Code). Each document is self-contained, with clear context, rules, and acceptance criteria.

  • Each document must be self-contained — an AI agent should be able to implement the feature by reading only the document + referenced annexes
  • Include code examples and contracts (TypeScript types, interfaces, schemas) whenever possible
  • Define measurable acceptance criteria
  • Reference Figma files, screenshots, or diagrams as annexes
  • Use consistent naming for components, modules, and Content Types
00_Introduction_and_Index.md ← This document
01_General_Architecture.md
02_Infrastructure_and_Environments.md
...
A01_Content_Types_Umbraco.md ← Annexes
A02_API_Contracts.md

The documentation is organized into main documents (numbered) and annexes (A prefix). Each document covers a distinct functional or technical area.


DocFilenameContents
0000_Introduction_and_Index.mdProject context, team, objectives, general index (this document)
0101_General_Architecture.mdHeadless architecture overview, component diagram, end-to-end data flow, architectural decisions (ADRs), boundaries between frontend/backend/CDN
0202_Infrastructure_and_Environments.mdAzure services (Web Apps, SQL, Blob), environments (DEV/STAGE/QA/PROD), CI/CD pipelines, IaC (Bicep/ARM), monitoring, alerts, scalability
0303_MultiSite_and_Domains.mdUmbraco multi-site configuration, domain mapping, multi-tenant routing in Next.js, content tree structure, shared vs. site-specific content
0404_Frontend_Architecture.mdNext.js folder structure, App Router, layouts, data fetching (RSC), components vs. modules vs. templates, code conventions, linting, TypeScript config
0505_Design_System_and_Theming.mdDesign tokens, per-site theming system, CSS variables, typography, colors, spacing, Storybook, base components (UI Kit), responsive strategy
0606_Content_Modeling_Umbraco.mdContent Types modeling, Element Types, compositions, custom Data Types, Block List/Grid, Media Types, Document Type structure per site
0707_Modules_and_Templates.mdModule catalog (M01–Mxx), module development lifecycle, component/types/stories/mapper pattern, page templates, composition rules
0808_API_and_Integration.mdUmbraco Content Delivery API, custom endpoints, data contracts (request/response), forms API, webhooks, preview mode
0909_Cache_and_Performance.mdCloudflare cache strategy (TTL, headers), programmatic purge, dependency graph, warmup, ISR vs. SSR, performance metrics, Core Web Vitals, image optimization
1010_MultiLanguage_and_i18n.mdUmbraco multi-language support (variants), i18n routing in Next.js, hreflang, locale detection, fallback strategy, UI string translation
1111_SEO_and_Metadata.mdStructured data (JSON-LD), dynamic meta tags, multi-site sitemap.xml, robots.txt, canonical URLs, Open Graph, schema.org for Hotels, breadcrumbs
1212_Forms.mdContact forms, Umbraco Forms or custom integration, client/server validation, email sending, GDPR consent, submission storage
1313_Media_and_Assets.mdUmbraco media management, Azure Blob Storage, image processing (responsive images, WebP/AVIF), CDN for assets, upload policies, Media Library structure
1414_Accessibility_WCAG.mdWCAG 2.1 AA requirements, per-component checklist, keyboard navigation, screen readers, contrast, aria labels, automated a11y tests
1515_Security.mdBackoffice access restriction by IP, MFA, rate limiting, CSP headers, CORS, account expiration, OWASP top 10, bot protection, cookie consent
1616_Analytics_and_Monitoring.mdGoogle Analytics 4, Tag Manager, consent mode, custom events, Umbraco dashboard (editorial metrics), uptime monitoring, error tracking
1717_AB_Testing.mdA/B testing framework, CMS configuration, Next.js runtime, analytics integration, conversion metrics, segmentation
1818_QA_and_Testing.mdTesting strategy (unit, integration, E2E, visual regression), tools (Vitest, Playwright, Chromatic), Lighthouse CI, test coverage, Definition of Done
1919_Booking_Engine_Integration.mdNavarino Bookpoint calendar widget, Synxis redirect with query string parameters, per-hotel configuration, conversion tracking, UTM parameters
2020_EPICS_and_Roadmap.mdProject epics, user stories skeleton, prioritization, delivery phases, milestones, epic dependencies
2121_Security_Pentesting_OWASP.mdOWASP Top 10 mapped to headless architecture, mandatory pentest catalog, CI/CD security stages, pre-go-live gate, tools, methodology, reporting
2222_Project_Management_and_Zoho.mdTask lifecycle, Zoho status workflow (AI-optimized), Claude ↔ Zoho ↔ Azure DevOps integration, comment templates, error handling, Kanban board design, metrics
22a22a_Guia_Equipa_Gestao_Tarefas.mdGuia em PT para a equipa (designers, QA, PO, PM) — explica o processo, estados, responsabilidades e boas práticas em linguagem não-técnica

AnnexFilenameContents
A01A01_Content_Types_Reference.mdComplete reference of Umbraco Document Types, Element Types, compositions, and Data Types
A02A02_API_Contracts.mdTypeScript schemas for all API contracts (request/response) across integrations
A03A03_Design_Tokens.mdComplete design tokens table (colors, typography, spacing, breakpoints) per site/theme
A04A04_Module_Catalog.mdVisual catalog of all modules (M01–Mxx) with Figma screenshots, props, variants
A05A05_Environment_Config.mdEnvironment variables, connection strings, feature flags per environment
A06A06_Dependency_Graph_Rules.mdContent → page mapping rules for cache invalidation
A07A07_Coding_Standards.mdCode conventions, linting rules, commit conventions, PR guidelines, branch strategy
A08A08_Glossary.mdGlossary of technical and business terms used in the project

The following points were not present in the original PRD and are considered essential:

PointDescriptionDocument(s)
Booking EngineNavarino/Synxis integration is the conversion core — needs detailed spec19_Booking_Engine_Integration.md
Content ModelingContent Type structure determines the entire architecture — needs formal modeling06_Content_Modeling_Umbraco.md, A01
API ContractsTyped contracts for AI agents to implement correctly08_API_and_Integration.md, A02
CI/CD & EnvironmentsDeploy pipeline, environments, feature flags — essential for multi-team work02_Infrastructure_and_Environments.md, A05
PointDescriptionDocument(s)
Design System as PackageMulti-site theming needs a formal token system05_Design_System_and_Theming.md, A03
Accessibility (WCAG)Legal and quality requirement — completely absent from original PRD14_Accessibility_WCAG.md
Technical SEOStructured data for Hotels, multi-site sitemaps, hreflang11_SEO_and_Metadata.md
Media PipelineImage optimization, responsive images, CDN assets13_Media_and_Assets.md
Coding StandardsEssential for consistency with AI-assisted developmentA07_Coding_Standards.md
PointDescriptionDocument(s)
Error Handling & 404Custom error pages per site04_Frontend_Architecture.md
Preview ModeDraft preview on frontend for editors08_API_and_Integration.md
Content SchedulingScheduled publish/unpublish in Umbraco06_Content_Modeling_Umbraco.md
Cookie ConsentGDPR compliance, consent banner15_Security.md
SearchInternal search (Examine/Algolia)New doc or include in 08
Redirects Management301/302 redirect management in CMS04_Frontend_Architecture.md
Print StylesPrint versions for content pages05_Design_System_and_Theming.md
Newsletter IntegrationLead capture / email marketing integration12_Forms.md

ResourceLink
Project CharterZoho Learn
Zoho Projects[project link]
SharePoint[shared folder]
Figma[design link]
Git Repository[repo link]
SDLCSoftware Development LifeCycle v1.1

Next Step: Begin writing detailed documents, starting with 01_General_Architecture.md.