Blueprint — Hospitality / Luxury
The HubZero Hospitality / Luxury blueprint is a canonical reference implementation for multi-property hotel groups. It provides a structured, content-led architecture that enables high-fidelity brand presentation without the overhead of CMS integration, real-time availability systems, or complex backend infrastructure.
To demonstrate this, we built Montreval Hotels. Montreval is entirely fictional; its properties, destinations, staff, and editorial content serve only to illustrate the system's capabilities.

Engineering for scale and integrity
Hospitality sites often struggle with fragmented relationship logic. We solved this by centralizing all domain data into a typed content graph in `src/content/`. By treating properties, rooms, and experiences as strongly-typed TypeScript records, we ensure referential integrity across the entire site.
This approach allows the system to generate 67 static public routes and their associated metadata, sitemaps, and breadcrumbs automatically. Because the data is local, the build is fully deterministic: content changes require a redeployment, eliminating runtime database dependencies.



Design language and constraints
Luxury design is often undermined by excessive UI ornament. Our implementation uses a restrained palette of ink, paper, and brass, prioritizing generous white space and consistent typographic hierarchy. We avoid common UI patterns like card shadows or dashboard-style chrome, relying instead on hairline borders and structural spacing to organize information.
Accessibility is baked into the component layer. The full-screen menu includes focus trapping, escape-key handling, and scroll locking, ensuring the same experience regardless of device. We also provide reduced-motion support at both the CSS and JavaScript levels, stripping away atmospheric animations when requested by the user's system settings.
Tradeoffs and limitations
This blueprint is an honest demonstration, not a functional booking engine. It contains no database, no real payment processing, and no live availability. Enquiry actions are strictly limited to `tel:` and `mailto:` links, as we intentionally avoid collecting user data that our infrastructure cannot process.
Lessons learned
The separation of the content model from the UI model proved critical. By using card adapters to transform domain records into consistent collection items, we kept our route pages clean and prevented the duplication of logic. This modularity confirms the blueprint's suitability as a foundation for future hospitality projects, where the design language can change while the underlying data graph remains stable.