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
1. Project Overview
Section titled “1. Project Overview”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.
1.1 Websites
Section titled “1.1 Websites”| # | Website | Domain (PROD) | Type |
|---|---|---|---|
| 1 | Savoy Signature (Group) | savoysignature.com | Institutional / Aggregator |
| 2 | Savoy Palace | savoysignature.com/savoypalacehotel | Hotel Unit |
| 3 | Royal Savoy | savoysignature.com/royalsavoyhotel | Hotel Unit |
| 4 | Saccharum Hotel | savoysignature.com/saccharumhotel | Hotel Unit |
| 5 | The Reserve Hotel | savoysignature.com/thereservehotel | Hotel Unit |
| 6 | Calheta Beach Hotel | savoysignature.com/calhetabeachhotel | Hotel Unit |
| 7 | Gardens Hotel | savoysignature.com/gardenshotel | Hotel Unit |
| 8 | Hotel Next | hotelnext.pt | Hotel Unit |
Note: Production domain strategy is TBD. The domains above are reference values. See
03_MultiSite_and_Domains.mdfor current status.
1.2 Business Objectives
Section titled “1.2 Business Objectives”- Usability — Significant improvement in browsing experience
- Conversion — Increase direct bookings from each hotel unit’s channels
- Intuitive navigation — Fluid, conversion-oriented experience
- Visual differentiation — Each hotel reflects its own positioning with a unique visual identity
- Institutional content — The group website aggregates content and funnels users to hotel units
1.3 Technical Approach
Section titled “1.3 Technical Approach”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
Production Architecture
Section titled “Production Architecture”Development Workflow
Section titled “Development Workflow”1.4 Booking Engine Integration
Section titled “1.4 Booking Engine Integration”The booking flow follows a redirect model:
- Each hotel site displays a booking bar with a Navarino Bookpoint calendar widget
- Users select dates, number of adults, children, and nights
- 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=0Detailed specification in
19_Booking_Engine_Integration.md
1.5 Team
Section titled “1.5 Team”| Role | Name | Contact |
|---|---|---|
| Project Manager | Sara Bica, Michelle Monteiro | sara.bica@wycreative.com |
| Tech Lead | Rui Rosa | rui.rosa@wycreative.com |
| Functional Analyst | Bernardo | - |
| Design Lead / UX Supervisor | Liliana Moreira | liliana.moreira@wycreative.com |
| UX/UI | Joana Catarina | — |
| FE Developers | Rui Rosa, Hugo Coutinho, Sérgio Fernandes | — |
| BE Developers | Rui Rosa, Ricardo Santos | — |
1.6 Stakeholders (Client)
Section titled “1.6 Stakeholders (Client)”| Name | Role |
|---|---|
| Sílvia Dias | Marketing Director — high-level oversight |
| Benjamin Campoverde | Digital Marketing Manager — project lead |
| Carolina Marques | Digital Marketing |
| Carlota Sousa | Digital Marketing |
2. Agentic AI Development Principles
Section titled “2. Agentic AI Development Principles”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.
2.1 Document Rules
Section titled “2.1 Document Rules”- 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
2.2 Document Naming Convention
Section titled “2.2 Document Naming Convention”00_Introduction_and_Index.md ← This document01_General_Architecture.md02_Infrastructure_and_Environments.md...A01_Content_Types_Umbraco.md ← AnnexesA02_API_Contracts.md3. PRD Document Index
Section titled “3. PRD Document Index”The documentation is organized into main documents (numbered) and annexes (A prefix). Each document covers a distinct functional or technical area.
Main Documents
Section titled “Main Documents”| Doc | Filename | Contents |
|---|---|---|
| 00 | 00_Introduction_and_Index.md | Project context, team, objectives, general index (this document) |
| 01 | 01_General_Architecture.md | Headless architecture overview, component diagram, end-to-end data flow, architectural decisions (ADRs), boundaries between frontend/backend/CDN |
| 02 | 02_Infrastructure_and_Environments.md | Azure services (Web Apps, SQL, Blob), environments (DEV/STAGE/QA/PROD), CI/CD pipelines, IaC (Bicep/ARM), monitoring, alerts, scalability |
| 03 | 03_MultiSite_and_Domains.md | Umbraco multi-site configuration, domain mapping, multi-tenant routing in Next.js, content tree structure, shared vs. site-specific content |
| 04 | 04_Frontend_Architecture.md | Next.js folder structure, App Router, layouts, data fetching (RSC), components vs. modules vs. templates, code conventions, linting, TypeScript config |
| 05 | 05_Design_System_and_Theming.md | Design tokens, per-site theming system, CSS variables, typography, colors, spacing, Storybook, base components (UI Kit), responsive strategy |
| 06 | 06_Content_Modeling_Umbraco.md | Content Types modeling, Element Types, compositions, custom Data Types, Block List/Grid, Media Types, Document Type structure per site |
| 07 | 07_Modules_and_Templates.md | Module catalog (M01–Mxx), module development lifecycle, component/types/stories/mapper pattern, page templates, composition rules |
| 08 | 08_API_and_Integration.md | Umbraco Content Delivery API, custom endpoints, data contracts (request/response), forms API, webhooks, preview mode |
| 09 | 09_Cache_and_Performance.md | Cloudflare cache strategy (TTL, headers), programmatic purge, dependency graph, warmup, ISR vs. SSR, performance metrics, Core Web Vitals, image optimization |
| 10 | 10_MultiLanguage_and_i18n.md | Umbraco multi-language support (variants), i18n routing in Next.js, hreflang, locale detection, fallback strategy, UI string translation |
| 11 | 11_SEO_and_Metadata.md | Structured data (JSON-LD), dynamic meta tags, multi-site sitemap.xml, robots.txt, canonical URLs, Open Graph, schema.org for Hotels, breadcrumbs |
| 12 | 12_Forms.md | Contact forms, Umbraco Forms or custom integration, client/server validation, email sending, GDPR consent, submission storage |
| 13 | 13_Media_and_Assets.md | Umbraco media management, Azure Blob Storage, image processing (responsive images, WebP/AVIF), CDN for assets, upload policies, Media Library structure |
| 14 | 14_Accessibility_WCAG.md | WCAG 2.1 AA requirements, per-component checklist, keyboard navigation, screen readers, contrast, aria labels, automated a11y tests |
| 15 | 15_Security.md | Backoffice access restriction by IP, MFA, rate limiting, CSP headers, CORS, account expiration, OWASP top 10, bot protection, cookie consent |
| 16 | 16_Analytics_and_Monitoring.md | Google Analytics 4, Tag Manager, consent mode, custom events, Umbraco dashboard (editorial metrics), uptime monitoring, error tracking |
| 17 | 17_AB_Testing.md | A/B testing framework, CMS configuration, Next.js runtime, analytics integration, conversion metrics, segmentation |
| 18 | 18_QA_and_Testing.md | Testing strategy (unit, integration, E2E, visual regression), tools (Vitest, Playwright, Chromatic), Lighthouse CI, test coverage, Definition of Done |
| 19 | 19_Booking_Engine_Integration.md | Navarino Bookpoint calendar widget, Synxis redirect with query string parameters, per-hotel configuration, conversion tracking, UTM parameters |
| 20 | 20_EPICS_and_Roadmap.md | Project epics, user stories skeleton, prioritization, delivery phases, milestones, epic dependencies |
| 21 | 21_Security_Pentesting_OWASP.md | OWASP Top 10 mapped to headless architecture, mandatory pentest catalog, CI/CD security stages, pre-go-live gate, tools, methodology, reporting |
| 22 | 22_Project_Management_and_Zoho.md | Task lifecycle, Zoho status workflow (AI-optimized), Claude ↔ Zoho ↔ Azure DevOps integration, comment templates, error handling, Kanban board design, metrics |
| 22a | 22a_Guia_Equipa_Gestao_Tarefas.md | Guia em PT para a equipa (designers, QA, PO, PM) — explica o processo, estados, responsabilidades e boas práticas em linguagem não-técnica |
Technical Annexes
Section titled “Technical Annexes”| Annex | Filename | Contents |
|---|---|---|
| A01 | A01_Content_Types_Reference.md | Complete reference of Umbraco Document Types, Element Types, compositions, and Data Types |
| A02 | A02_API_Contracts.md | TypeScript schemas for all API contracts (request/response) across integrations |
| A03 | A03_Design_Tokens.md | Complete design tokens table (colors, typography, spacing, breakpoints) per site/theme |
| A04 | A04_Module_Catalog.md | Visual catalog of all modules (M01–Mxx) with Figma screenshots, props, variants |
| A05 | A05_Environment_Config.md | Environment variables, connection strings, feature flags per environment |
| A06 | A06_Dependency_Graph_Rules.md | Content → page mapping rules for cache invalidation |
| A07 | A07_Coding_Standards.md | Code conventions, linting rules, commit conventions, PR guidelines, branch strategy |
| A08 | A08_Glossary.md | Glossary of technical and business terms used in the project |
4. Additional Points Identified (New)
Section titled “4. Additional Points Identified (New)”The following points were not present in the original PRD and are considered essential:
🔴 Critical
Section titled “🔴 Critical”| Point | Description | Document(s) |
|---|---|---|
| Booking Engine | Navarino/Synxis integration is the conversion core — needs detailed spec | 19_Booking_Engine_Integration.md |
| Content Modeling | Content Type structure determines the entire architecture — needs formal modeling | 06_Content_Modeling_Umbraco.md, A01 |
| API Contracts | Typed contracts for AI agents to implement correctly | 08_API_and_Integration.md, A02 |
| CI/CD & Environments | Deploy pipeline, environments, feature flags — essential for multi-team work | 02_Infrastructure_and_Environments.md, A05 |
🟡 Important
Section titled “🟡 Important”| Point | Description | Document(s) |
|---|---|---|
| Design System as Package | Multi-site theming needs a formal token system | 05_Design_System_and_Theming.md, A03 |
| Accessibility (WCAG) | Legal and quality requirement — completely absent from original PRD | 14_Accessibility_WCAG.md |
| Technical SEO | Structured data for Hotels, multi-site sitemaps, hreflang | 11_SEO_and_Metadata.md |
| Media Pipeline | Image optimization, responsive images, CDN assets | 13_Media_and_Assets.md |
| Coding Standards | Essential for consistency with AI-assisted development | A07_Coding_Standards.md |
🟢 Recommended
Section titled “🟢 Recommended”| Point | Description | Document(s) |
|---|---|---|
| Error Handling & 404 | Custom error pages per site | 04_Frontend_Architecture.md |
| Preview Mode | Draft preview on frontend for editors | 08_API_and_Integration.md |
| Content Scheduling | Scheduled publish/unpublish in Umbraco | 06_Content_Modeling_Umbraco.md |
| Cookie Consent | GDPR compliance, consent banner | 15_Security.md |
| Search | Internal search (Examine/Algolia) | New doc or include in 08 |
| Redirects Management | 301/302 redirect management in CMS | 04_Frontend_Architecture.md |
| Print Styles | Print versions for content pages | 05_Design_System_and_Theming.md |
| Newsletter Integration | Lead capture / email marketing integration | 12_Forms.md |
5. References
Section titled “5. References”| Resource | Link |
|---|---|
| Project Charter | Zoho Learn |
| Zoho Projects | [project link] |
| SharePoint | [shared folder] |
| Figma | [design link] |
| Git Repository | [repo link] |
| SDLC | Software Development LifeCycle v1.1 |
Next Step: Begin writing detailed documents, starting with 01_General_Architecture.md.