QUEENCO RESORT UPDATES

Updates

Official chronological record of website enhancements, architecture refinements, navigation milestones, and verified corporate directory integrations for Queenco Entertainment Resort.

v2.9 Live
Current Release
Production Deployed
100% Pass
CDP Test Rate
Automated Browser QA
8 / 8 Live
Resort Pillars
Canonical IA Matrix
40 / 40 Loaded
Menu Thumbnails
0 Placeholders / 0 Broken
v2.9Latest ReleaseVisual & Design

Hero Frosted-Glass Dual CTAs, Symmetrical Equal-Width Buttons, Zero Clutter & Pure Editorial Alignment

Refined homepage hero CTA buttons into a balanced frosted-glass pair with 8px subtle rounding; resolved desktop room description visibility bug caused by Tailwind v4 base color compilation; instituted symmetrical equal-width button geometry across all paired actions with centered alignment under card descriptions; centered the Accommodations header action directly above the secondary rooms column; and eliminated all distracting category badges across cards for seamless editorial elegance.

Hero CTA Dual Frosted-Glass Styling & 8px Rounding

Hero Architecture

Applied secondary frosted-glass styling (backdrop-filter: blur(16px), background: rgba(255, 255, 255, 0.12), border: 1px solid rgba(255, 255, 255, 0.35)) across both hero CTAs ("BOOK A STAY" and "EXPLORE RESORT"). Stripped the gold gradient fill and sparkle icon from the first CTA to establish a harmonized, prestigious pair with 8px rounded corners and matching 252px width.

Balanced, glare-free hero conversion pair with elegant frosted-glass aesthetics

Accommodations Desktop Room Description Visibility Fix

Bug Fix & Typography

Diagnosed and resolved a subtle Tailwind CSS v4 compilation issue where sm:text-base mapped to color: var(--color-base) (#FFFFFF) on screen widths >=640px, causing room descriptions to render invisible white-on-white text in desktop mode. Stripped the utility and instituted an explicit CSS safeguard in main.css (.queenco-accommodations p { color: #5C666F !important; }).

Crisp #5C666F editorial descriptions fully visible on both desktop and mobile viewports

Symmetrical Equal-Width Button Geometry Across Paired Actions

Design System

Standardized companion button pairs so the shorter button matches the exact width of the longer button: Hero (252px), Beachfront Resort Introduction (254px), Featured Suite (165px), Secondary Room Cards (114px), Casino Feature (225px), and Poker Feature (232px). Enforced centered text alignment and balanced padding.

Harmonious, symmetrical button widths with zero awkward size disparity across pairs

Centered Button Alignment Under Room Card Descriptions

Card Layout

Restructured the secondary accommodation cards' action container to justify-center, horizontally centering the equal-width button pair ("BOOK" and "DETAILS →") directly underneath the card description for optimal balance.

Clean visual weight distribution directly anchored to the card content flow

Accommodations Header "Discover All Rooms" Centering

Grid Alignment

Re-aligned the Accommodations section header with the underlying 12-column asymmetric grid (lg:col-span-7 and lg:col-span-5). Positioned "DISCOVER ALL ROOMS →" in the exact horizontal center of the 5-column secondary rooms stack (midpoint 1078px, symmetrical 125px side margins).

Flawless vertical and horizontal harmony connecting header actions to room card stacks

Complete Card Category Badge Removal (Zero Clutter)

Editorial Cleanliness

Removed remaining category, cuisine, and metadata badges across all cards on the homepage—including room dimensions/views in Accommodations, cuisine tags in Dining, and category chips in Offers—leaving pure frameless photography, editorial titles, descriptions, and unified buttons.

Distraction-free, magazine-grade photography and uncluttered card hierarchy
v2.8Production StableVisual & Design

Pure Mazagan Frameless Editorial Architecture, Authentic Palette & Micro-Typography Clarity System

Full architectural deployment of the Mazagan luxury design system across Queenco resort pages: pure frameless editorial cards with floating media windows, authentic Mazagan color tokens (#1E252B, #5C666F, #9F8667), rhythmic section spacing, and the "Direct Website Privileges" clarity micro-typography formula applied across all cards, badges, and metadata.

Pure Mazagan Frameless Editorial Card Architecture

Card Architecture

Re-architected resort feature cards across Accommodations, Dining, Offers, Leisure, and Entertainment. Replaced generic boxed container cards, background fills, and borders with pure frameless editorial layouts: floating 16:10 / 4:3 media windows, unboxed content flows directly beneath, and solid contained pill buttons matching Kerzner International standards.

Clean editorial flow with zero artificial container box outlines or nested borders

Authentic Mazagan Color Palette Integration

Color System

Extracted and applied exact live design tokens from Mazagan Beach & Golf Resort: deep slate charcoal #1E252B (light) / #F0EDE4 (dark) for headings, refined slate #5C666F for editorial body descriptions, and Mazagan Ochre Sand Gold #9F8667 with tracking-[0.25em] for luxury overline category tags.

High-contrast, glare-free luxury palette certified against WCAG AAA contrast standards

Direct Website Privileges Micro-Typography Clarity Formula

Typography & Clarity

Transferred the razor-sharp legibility formula of the Direct Website Privileges banner to all resort cards: upgraded card descriptions to 14px font-normal text-[#4A5562] dark:text-neutral-300, elevated offer perks to 14px font-medium, standardized room specs and vouchers to 12px font-mono, and enlarged dining filter tabs to 12px font-semibold.

Zero eye strain across cards, razor-sharp anti-aliased letter stems, and instant readability

Mobile Viewport Typography & Welcome Title Clamping

Mobile Optimization

Audited 268 undersized mobile text elements and eliminated microscopic fonts (9px/10px). Clamped the editorial welcome headline (.welcome-title) from 15.2px up to 19.8px–25.6px (clamp(1.2rem, 1rem + 1vw, 1.6rem)), giving the resort introduction commanding visual presence on mobile viewports.

Flawless readability on 375px/390px mobile viewports with comfortable thumb interaction

Resort Section Gaps & Balanced Vertical Rhythm

Layout & Spacing

Standardized section vertical spacing across the homepage and feature templates using Mazagan spacing tokens: py-14 sm:py-16 lg:py-20 (56px–80px) for high-impact feature sections and py-12 sm:py-14 lg:py-16 for auxiliary feature grids, creating balanced breathing room without excessive empty gaps.

Consistent, harmonic vertical rhythm across all desktop and mobile viewport breakpoints

macOS Safari Video Autoplay & PWA Hydration Resilience

Performance & Compatibility

Optimized hero video encoding to Apple mp42 brand H.264 level 4.1 with silent audio track removal for 100% automated autoplay on macOS Safari and iOS WebKit. Refined desktop header dropdown menu threshold to <=1024px and decoupled PWA update checks to prevent client-side hydration deadlock.

Seamless instantaneous first paint and video playback across macOS Safari, iOS, and Chrome
v2.7Production StableVisual & Design

Mobile Hero CTA Inline Architecture, 56px Header Refinement & Flush Navigation Docking

Elevated mobile hero CTAs into a balanced side-by-side pair with auto-wrapping text, upgraded desktop hero CTAs to commanding lg size, standardized mobile header height to 56px luxury proportions with 9px logo breathing room, and perfected flush in-page scroll docking for #resort-welcome.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

Mobile Hero CTA Inline Row Architecture

Mobile Architecture

Restructured .hero-actions on mobile (< 768px) from stacked vertical columns (flex-direction: column) into a synchronized inline row (flex-direction: row; flex-wrap: nowrap). Each CTA shares equal width (flex: 1 1 0%) and stretches to identical vertical height (align-items: stretch), creating a polished, intentional matched pair.

Side-by-side primary and secondary conversion buttons on all smartphone viewports

Dynamic Label Word-Wrapping & Icon-Free Mobile Optimization

Typography & Layout

Removed white-space: nowrap from mobile hero buttons in favor of word-break: break-word and line-height: 1.25, allowing longer labels like "CASH GAMES & STAKES" or "TOURNAMENT CALENDAR" to cleanly wrap to two lines without clipping. Additionally hid decorative icons (.app-button__icon { display: none !important }) on mobile to maximize space for legible text, re-enabling them automatically on tablet and desktop.

Zero button text truncation across all resort pages regardless of label length

Desktop Hero CTA Sizing Upgrade (size="lg")

Desktop Sizing

Upgraded hero CTA buttons from size="sm" to size="lg" across all hero sections in blocks/Hero.vue. Hero sections represent the primary conversion surface of the resort and demand commanding presence. Enhanced the AppButton lg definition to padding: 1.05rem 2.5rem and font-size: 0.9rem (14.4px). Also standardized Bago Beach outlet CTA from "Reserve Beach Table" to "Reserve Table".

Confident, prestigious hero conversion buttons matching Four Seasons & Aman luxury standards

56px Mobile Header Architecture & Logo Negative Space

Design System

Elevated mobile header .header-inner min-height from 48px to 56px and synchronized the global --header-height-mobile design token to 56px (down from mismatched 62px). Refined mobile logo height from 42px to 38px, creating 9px of clean negative space top and bottom. Enlarged mobile icon buttons and hamburger tap box to 34px × 34px for ergonomic thumb interaction.

Prestigious mobile header with comfortable logo breathing room and zero phantom gaps on content pages

Flush In-Page Scroll Docking & Vue Router Offset Safeguards

Navigation & Routing

Resolved fixed header overlap on /#resort-welcome navigation. Set scroll-margin-top to exactly match header heights (56px mobile / 110-120px desktop), ensuring the white welcome section meets the bottom edge of the glass header with zero hero background sliver. Enhanced Vue Router router.options.ts to dynamically read getComputedStyle(el).scrollMarginTop and pass top offset to Vue Router. Updated AppButton.vue to support both #hash and /#hash in-page anchor links.

Pixel-perfect scroll landings with welcome title and luxury accent line centered below the header
v2.6Production StableVisual & Design

Breadcrumb Placement Refinement & Full Button System Unification

Removed breadcrumbs from all hero sections per UX best practice, unified every filter tab across the site to the gold brand active state, fixed WCAG contrast failures on inactive borders, and added focus-visible keyboard rings to all interactive buttons.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

Breadcrumbs Removed from Hero Sections

UX & Wayfinding

Removed AppBreadcrumb from all photographic hero canvases: category landings (/dining, /casino, /accommodation, /poker, /leisure, /events, /promotions, /gallery, /about-us, /contacts), all 6 dining outlet heroes, accommodation room detail heroes, and casino game detail heroes. Breadcrumbs are now exclusively placed on content/governance pages (/responsible-gaming, /know-the-game, /updates, /privacy-policy, /terms-and-conditions) where they provide genuine wayfinding value.

Clean hero sections across all landing pages; breadcrumbs only where contextually meaningful

Unified Gold Filter Tab Active State

Design Consistency

Standardized all filter tab active states site-wide to the brand gold gradient (linear-gradient 135deg: #ECC872 → #D4AF37 → #B8860B). Previously, /dining, /accommodation, /leisure, and /promotions used an off-brand Hudson Bay navy (#3F5266). Casino, poker, gallery, and events already used gold and were preserved. Homepage QueencoDiningShowcase tabs (All 6 Venues, Fine Dining, Beach & Casual, Bars & Lounges) also unified.

Single gold brand language across all 9 filter tab contexts on the site

WCAG Filter Border Contrast Fix

Accessibility

Inactive filter tab borders were set to rgba(0,0,0,0.12) — a 1.1:1 contrast ratio failing WCAG 1.4.11 Non-text Contrast. Updated to rgba(0,0,0,0.28-0.30) achieving 3:1+ across dining, accommodation, leisure, promotions, casino, and poker pages. Hover states updated to gold border (#D4AF37) with subtle gold tint background.

Filter tabs now visually identifiable as interactive elements at WCAG AA standard

Focus-Visible Keyboard Navigation Rings

Accessibility

Added gold focus-visible outlines (outline: 2px solid #D4AF37; outline-offset: 2-3px) to every interactive button on the site: AppButton component (all variants), global btn-* CSS utilities (btn-primary, btn-secondary, btn-white, btn-outline-white), all filter tabs (dining, casino, poker, accommodation, leisure, gallery, events, promotions), and QueencoFeatureSlider carousel navigation buttons. Previously outline:none was set with no replacement — a WCAG 2.4.7 failure.

Full keyboard navigation accessibility restored across all interactive elements site-wide

Homepage Dining Tab CSS Extraction Fix

Performance

The QueencoDiningShowcase component (homepage Restaurants & Lounges section) had its filter tab CSS bundled in a JS chunk rather than a static CSS file, causing a flash of unstyled content (FOUC) before JavaScript hydration. Moved .dining-tab and .dining-tab--active rules to global main.css ensuring styles are available in the SSR static HTML on first paint.

Zero FOUC on homepage dining tabs — styled correctly on first render without JS
v2.5Production StableVisual & Design

Dining Outlet Hero Architecture, Positioning Matrix & Unified Breadcrumbs

Complete architectural overhaul of dining outlet heroes with full-screen scaling, zero-overlay natural photography, custom venue positioning (left-bottom, right-bottom, center-top), sticky quick facts docking, unified breadcrumbs, casino route modernization, and font contrast remediation.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

Bespoke Venue Hero Positioning Matrix

Hero Architecture

Implemented configurable position prop on OutletHero.vue supporting left-bottom, right-bottom, and center-top. Tailored alignments to venue photography: Q Café & Bakery (left-bottom), Yi Sang Cantonese (left-bottom), The Horizon Sky Bar (right-bottom), Onami Japanese (right-bottom), Pepe Steakhouse (center-top), and Bago Beach Restaurant (center-top). Dynamically synchronizes content container, badge rows, typography, and action buttons.

Perfect visual harmony between textual content and photographic focal points

Zero Background Overlay & High-Contrast Typography

Visual Fidelity

Completely eliminated dark scrim overlays (.hero-overlay) from dining heroes to present 100% natural, vibrant venue photography. Applied multi-layered text shadows on titles, taglines, and descriptions ensuring crisp, effortless readability regardless of daytime sky or sunlight intensity.

Showcases authentic resort photography without muddying or artificial darkening

Centralized Luxury Breadcrumbs & Schema.org Rich Results

Wayfinding & SEO

Built reusable AppBreadcrumb.vue and useBreadcrumbs.ts composable with W3C WAI-ARIA compliance, auto-route derivation, and automated Google Schema.org BreadcrumbList JSON-LD head injection. Features dual visual modes (hero and surface), adaptive alignment, and mobile truncation. Remediated 2 production data defects in Accommodation (terminal crumb showing room wing instead of room title) and Casino (terminal crumb showing category instead of game title).

Resort-wide accessible wayfinding, Google rich search results, and 100% accurate entity breadcrumbs

Full-Screen Viewport Architecture & Sticky Quick Facts Bar

Viewport Scaling

Engineered dining hero containers to expand 100vh/100dvh across desktop and mobile devices. Kept the restored 4-column quick facts container (container mx-auto px-4 max-w-6xl) firmly docked to the bottom (sticky bottom-0 z-30) for instant guest access to cuisine, hours, dress code, and seating capacity.

Immersive edge-to-edge presentation with permanent quick facts accessibility

Casino Direct Game Routes & UTF-8 Encoding Remediation

Information Architecture

Migrated casino navigation from generic hash links to dedicated game detail routes (/casino/baccarat, /casino/blackjack, /casino/roulette, /casino/dragon-tiger, /casino/niu-niu, /casino/slots, /casino/vip-high-limit). Sanitized all mangled ??? character entities across casino datasets into clean, portable Unicode symbols.

Eliminated corrupted characters and provided indexable standalone game URLs

Dining Light-Mode Font Contrast Remediation

Accessibility & Contrast

Audited and corrected hardcoded white typography on /dining/bago, /dining/horizon, and /dining/qcafe. Headings and body copy now consume semantic tokens (text-primary achieving 14.8:1 AAA contrast, text-secondary achieving 5.6:1 AA contrast), ensuring pristine legibility in both light and dark themes.

Eliminated white-on-white text defects across dining subpages
v2.4Production StableSocial & Directory

Navigation Refinement & Official Social Media Synchronization

Full synchronization with the official Queenco corporate directory, implementation of pure typographic desktop navigation, header logo clarity preservation during mega menu interaction, and complete 40/40 thumbnail overhaul.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

Official Social Media Synchronization (Corporate Directory)

Corporate Directory

Audited and updated social destinations against official corporate directory (qcms.queencoasia.com). Replaced outdated Instagram (@queencoasia) and YouTube (@QueencoEntertainmentResort) fallbacks, added TikTok (@queencoresort) and Rednote/XHS (xhslink.cn/m/6DeBCUhpsFC) to Strapi CMS globals and footer. Preserved WhatsApp and phone channels unmodified.

Full alignment with official Queenco Asia corporate identity

Pure Typographic Desktop Navigation

Luxury Typography

Removed all category icons from top-level desktop menu items (STAY, DINE, CASINO, POKER, ENTERTAINMENT, LEISURE, EVENTS, OFFERS). The header now adheres to luxury hospitality benchmarks (Mazagan, Wynn, Bellagio) with clean, refined uppercase typography and 0.12em letter spacing.

Eliminated visual clutter and elevated luxury brand perception

Logo & Header Sharpness During Mega Menu Drop

Visual Quality

Re-scoped .mega-backdrop to start at top: 110px with height: calc(100vh - 110px) and ensured .header-inner has explicit z-index: 10. The Queenco brand mark, language selector, and Book button remain 100% crystal clear (filter: none, opacity: 1) without being blurred or darkened.

Resolved logo dimming/blurring glitch on menu hover

40 / 40 Mega Menu Thumbnail Optimization

Media Ingestion

Audited all 40 items across the 8 resort pillars. Resolved 7 items missing images, eliminated 5 cross-category duplicate photos, and fixed 4 broken image paths by mapping to authentic local resort photography in /uploads/. Zero placeholder fallbacks remaining.

100% verified authentic local media across all dropdowns

Strict Sharp Architecture & Exact Header Color Match

Architecture

Enforced border-radius: 0 !important across all mega menu containers, cards, thumbnails, and buttons. Directly consumes var(--header-bg) for a seamless 100% background color match (rgba(240, 237, 228, 0.96) in Light Mode / rgba(11, 14, 17, 0.78) in Dark Mode).

Seamless visual continuity between Header and Mega Menu
v2.3Major ArchitectureNavigation & UX

Canonical 8-Pillar Navigation Structure & Multi-Column Layouts

Restructured the primary site architecture from fragmented submenus into 8 canonical pillars reflecting core business drivers and revenue centers.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

8-Pillar Strategic Navigation Architecture

Information Architecture

Implemented STAY • DINE • CASINO • POKER • ENTERTAINMENT • LEISURE • EVENTS • OFFERS. Each pillar features tailored layout models (3-column hybrid for Stay/Casino, 4-column directory for Dine, 2-column promo for Poker/Entertainment/Leisure/Events).

Direct Booking Guarantee Campaign Cards

Conversion Rate Optimization

Embedded high-converting promotional cards with direct Exely booking links, Best Rate Guarantee badges, and instant WhatsApp concierge triggers inside each relevant dropdown panel.

Mobile Navigation Drawer Architecture

Mobile Experience

Aligned the mobile menu drawer with clean typography, sharp square accordion sections, left-bordered submenus, and sticky bottom Book Now button.

v2.2Critical Bug FixPerformance & Stability

Booking Engine Hydration & SSR Reload Stability

Diagnosed and resolved a critical Nuxt 4 SSR reload issue where repeating page refresh on /booking caused a blank white screen.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

Exely Booking Widget Hydration Lifecycle Fix

SSR & Hydration

Fixed script injection race condition and window.Exely state pollution during client-side hydration without disabling SSR or compromising SEO.

Zero-Disruption Booking Flow

Reliability

Verified repeated hard refreshes (Ctrl+R, 5x consecutive tests) with zero blank screens, preserving full room calendar rate querying and promo codes.

v2.1Asset OptimizationCMS & Architecture

Authentic High-Resolution Asset Migration & Local CDN

Audited and migrated over 40 resort media assets from external third-party URLs to self-hosted local assets in /uploads/ and /images/.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

Local Asset Ingestion & Orphaned Path Cleanup

Asset Pipeline

Eliminated dependencies on external image CDNs, preventing broken image placeholders and improving Largest Contentful Paint (LCP).

WebP & JPEG High-Compression Standards

Performance

Converted heavy photographic assets to optimized WebP formats with fallback JPEGs, reducing total page bundle weight.

v2.0Major FeatureCMS & Backend

Queenco Club VIP Loyalty Portal & Google SSO

Launched the digital VIP player loyalty portal with metallic virtual membership cards, 4-tier status progression, and single sign-on.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

Digital VIP Membership Card (/member)

Loyalty Portal

Interactive 3D tilt metallic card reflecting the guest tier status (Silver, Gold, Platinum, Diamond) with real-time comp balance.

Google OAuth SSO & Strapi Authentication

Security & Auth

Secure split-screen login modal with Google SSO and email authentication linked directly to the Strapi user management system.

v1.0Initial ReleaseArchitecture & Infrastructure

Project Foundation & Monorepo Architecture

Bootstrapped the full-stack luxury hospitality platform as a high-performance Docker monorepo with Nuxt 4, Strapi v5, PostgreSQL, and Nginx reverse proxy.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

Docker Multi-Container Monorepo

Infrastructure

Established the core infrastructure: frontend-dev (Nuxt hot reload on port 5001), frontend-prod (static serve on port 5002), backend-strapi (port 1337), PostgreSQL 15, Adminer DB GUI, and Nginx reverse proxy on port 5000. All services orchestrated via docker-compose.yml for single-command startup.

Zero-friction development environment with production-identical containerization

Nuxt 4 Frontend Foundation

Frontend Stack

Initialized Nuxt 4 with Vue 3, TypeScript, Tailwind CSS, Nuxt UI, and Pinia state management. Configured static site generation (pnpm generate:prod) with Nitro preset and custom HTML minification script preserving Vue 3 SSR comment anchors.

Type-safe, SSR-ready frontend with sub-second static page delivery

Strapi v5 Headless CMS Backend

CMS Backend

Deployed Strapi v5 with TypeScript and PostgreSQL. Defined core content types: Page (dynamic zones), Accommodation, Dining, Casino Game, Event, Entertainment, Offer, and Contact Info. Configured CORS, JWT authentication, and API permissions for frontend consumption.

Editorial team can manage all resort content without developer deployments

Nginx Reverse Proxy & Domain Routing

Proxy & Networking

Configured Nginx as the unified entry point routing public traffic on port 5000 to frontend and /api/* paths to Strapi backend. Set up dev1.queencoasia.com public domain. Added Permissions-Policy headers (unload=*) to resolve Chromium bfcache deprecation violations.

Single public entry point with clean URL routing and security headers
v1.1Design SystemVisual & Design

Design System, Color Tokens & Dark Mode Architecture

Established the complete luxury design token system with light/dark mode, Queenco brand palette, and the reusable global component architecture.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

Queenco Luxury Design Token System

Design Tokens

Defined the full Queenco brand palette as CSS custom properties: Hudson Bay Blue (#3F5266), Queenco Gold (#D4AF37 / #EAB308), Queenco Dove (#F0EDE4), Queenco Silver (#A6ACB3), and semantic surface/text tokens. All components consume tokens instead of hardcoded values for consistent theming.

Single-source design system enabling brand-consistent styling across all 50+ pages

Light & Dark Mode Toggle

Theming

Implemented full adaptive dark mode using the html.dark class strategy. All design tokens have light and dark variants. The theme toggle persists via localStorage and respects the user prefers-color-scheme media query on first visit.

Luxury nighttime browsing experience with zero flash-of-wrong-theme

Global Header & Navigation Shell

Navigation

Built the sticky translucent header (rgba(240,237,228,0.96) light / rgba(11,14,17,0.78) dark) with the Queenco wordmark, language selector, dark mode toggle, guest account icon, and gold BOOK NOW CTA. Integrated the DesktopMenu and MobileMenu navigation shells.

Luxury editorial header present on every page with zero layout shift

AppFooter & Global Page Layout

Global Components

Built the multi-column footer with resort address, official contacts (info@queencoasia.com, +855 93 570 000, @QueencoAtYourService), social media links, resort brand group, and legal navigation. Established the global page layout composable wrapping all pages.

Consistent layout frame and official contact channels on every page
v1.2CMS ArchitectureCMS & Architecture

CMS Dynamic Page Renderer & Strapi Dynamic Zones

Implemented the AppPageRenderer dynamic zone system allowing the editorial team to compose any page layout from modular blocks without developer involvement.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

AppPageRenderer Dynamic Zone Engine

Dynamic Zones

Built the central page composition engine that maps Strapi dynamic zone __component keys to Vue block components: blocks.hero, blocks.introduction, blocks.feature-grid, blocks.room-features, blocks.room-amenities, blocks.closing-cta, blocks.additional-information, blocks.follow-queenco, blocks.guest-ratings, blocks.contact, blocks.find-us, and blocks.map.

Any page layout buildable in Strapi admin without a single line of code

Strapi Payload Extraction for Static Generation

Static Generation

Configured Nuxt with payload extraction enabling full offline static generation. Per-page JSON payloads are prerendered and co-located with static HTML, eliminating all runtime API calls for guests.

Zero-latency page loads with no external API dependency for end users

Vue 3 SSR Hydration Zero-Mismatch Architecture

SSR & Hydration

Diagnosed and resolved 42 hydration class mismatch warnings caused by the lazy-media plugin mutating classList during hydration. Migrated class mutations to data-* attributes and scheduled DOM scans in macro-task setTimeout(scanMedia, 100) to run after Vue completes reconciliation.

0 hydration warnings, 0 console errors across all pages
v1.3FeaturePages & Features

Accommodation Module & Room Catalog

Launched the full accommodation directory with dual-wing architecture, 20+ room types, gallery modals, and direct booking engine integration.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

Dual-Wing Room Architecture (Tower & Beachfront)

Accommodation

Implemented /accommodation with Tower Wing and Beachfront Wing filters, room category sorting (Deluxe, Superior, Suite, Villa), and a responsive room grid. Each room card displays bed type, area (m2), view, and occupancy.

Full digital room catalog with wing and category navigation

Room Detail Pages (/accommodation/[slug])

Room Details

Built dynamic room detail pages with full-bleed hero photography, amenity grids, photo gallery modal with touch-swipe navigation, room highlights, and direct Exely booking engine CTA.

Guests can explore and book any room with full photography and details

Exely Booking Engine Integration

Booking Engine

Integrated the Exely hotel booking widget on /booking with SSR-safe script injection, hydration lifecycle management, and room calendar rate querying. Stable across repeated hard refreshes.

Direct online reservations without third-party OTA commission
v1.4FeaturePages & Features

Dining Directory & 6 Outlet Pages

Launched the complete dining ecosystem: a filterable directory of all 6 Queenco venues plus dedicated outlet detail pages with menus, hours, and reservations.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

Dining Index with Category Filters

Dining Directory

Built /dining as a filterable directory of all 6 resort venues across Fine Dining, Beach & Casual, and Bars & Lounges categories. VenueCard components display venue photography, cuisine type, opening hours, and location badges.

Guests discover and navigate all resort dining with one-click filtering

6 Dedicated Dining Outlet Pages

Outlet Pages

Launched individual pages for Pepe Italian Steakhouse (/dining/pepe), Onami Japanese Restaurant (/dining/onami), The Horizon Sky Bar (/dining/horizon), Q Cafe & Bakery (/dining/qcafe), Yi Sang Cantonese & Seafood (/dining/yisang), and Bago Beach Restaurant (/dining/bago). Each features a full-screen hero, cuisine highlights, menu sections, and reservation CTAs.

6 SEO-indexed, bookable dining destination pages

OutletHero Architecture (Initial)

Component Architecture

Designed the shared OutletHero.vue component used across all dining outlets: full viewport hero with a venue quick facts bar (cuisine, hours, dress code, seating capacity) docked to the bottom of each hero section.

Consistent, immersive dining hero experience across all 6 venues
v1.5FeaturePages & Features

Casino, Poker & Responsible Gaming Pages

Launched the full casino gaming ecosystem with a filterable game directory, 10 dedicated game pages, the Queenco Poker Club, and responsible gaming resources.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

Casino Index with Game Filter Tabs

Casino Directory

Built /casino as a filterable showcase of all table games, electronic gaming, and premium VIP experiences. Filter tabs allow guests to browse by game category. Each game card links to its dedicated detail page.

Full digital gaming directory with direct links to game information

10 Dedicated Casino Game Pages (/casino/[slug])

Game Pages

Launched standalone pages for baccarat, blackjack, roulette, dragon-tiger, niu-niu, slots, vip-high-limit, poker, know-the-game, and responsible-gaming. Each page features game rules, table limits, session info, and photo galleries.

10 SEO-indexed game pages replacing legacy hash fragment anchors

Queenco Poker Club Page

Poker Room

Dedicated /poker page with tournament schedule, cash game listings, blind structure, prize pool history, and registration CTAs. Filter tabs allow browsing by tournament type.

Standalone internationally-visible poker destination page

Responsible Gaming & Know-the-Game

Compliance

Published /responsible-gaming with self-exclusion procedures, player protection contacts, and addiction resources. Published /know-the-game with beginner rulebooks, drawing charts, and payout matrices for all casino games.

Regulatory compliance and responsible gaming resources publicly accessible
v1.6FeaturePages & Features

Entertainment, Leisure, Events & Gallery

Completed the core resort experience pages: Entertainment, Leisure facilities directory, Events & MICE venue catalog, and the full-resort Photo Gallery.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

Entertainment & Live Events Page

Entertainment

Built /entertainment showcasing resident DJs, live bands, beach events, nightlife programming, and the resort entertainment calendar with event type filter tabs.

Guests discover and plan around resort entertainment programming

Leisure Facilities Directory

Leisure

Launched /leisure with infinity pools, fitness center, spa, tennis courts, watersports, and beach activities. Each facility has its own card with hours, location, and booking info. Category filters allow sorting by facility type.

Complete digital guide to all resort leisure facilities

Events & MICE Venue Catalog

Events & MICE

Built /events with Grand Ballroom, Beachfront Lawn, Boardrooms, and Private Dining venue catalog. Dual filter sets: by venue type and by package category (Wedding, Corporate, Banquet, Team Building). Includes capacity specs and RFP inquiry forms.

Resort positioned as a premier MICE and celebration destination

Full-Resort Photo Gallery

Gallery

Built /gallery with the complete resort media library, filterable by category (Rooms, Dining, Pool, Casino, Events, Exterior). Masonry grid layout with lightbox modal, touch swipe navigation, and keyboard arrow controls.

Visual showcase of all resort experiences driving booking inspiration
v1.7Major FeatureVisual & Design

Mazagan Beach & Golf Resort — Static Dual-Template

Launched the Mazagan Beach & Golf Resort as a second brand template: a 1:1 high-fidelity static replica of Mazagan's live website, fully self-contained with zero backend dependencies.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

14-Section Homepage Replica

Static Replica

Engineered a pixel-accurate static replica of the Mazagan homepage featuring: 100vh video hero with sound/play/fullscreen controls, animated booking bar with date pickers, Welcome editorial section, asymmetric accommodation split, Dining Showcase, Activities pillars, Kids Clubs, Gary Player Golf feature, Mazagan Spa, Casino Feature, Dual Coastal Feature, Tripadvisor awards, and the full Kerzner global footer.

14-section luxury resort homepage demonstrating second brand capability

10 Dedicated Mazagan Sub-Routes

Sub-Routes

Built complete sub-pages: /mazagan/accommodation (492 rooms, suites, penthouses), /mazagan/dining (15 signature venues), /mazagan/activities, /mazagan/golf (Gary Player 18-hole links), /mazagan/spa, /mazagan/offers, /mazagan/weddings (Grand Ballroom Doukkala, 1,200 capacity), /mazagan/about, /mazagan/contact, and the master /mazagan/ landing.

Complete second resort brand with 10 navigable destination pages

Zero-API Static Data Layer

Data Architecture

Created a self-contained typed TypeScript data layer in frontend/app/data/mazagan/ covering all content: site.ts, navigation.ts, accommodations.ts, restaurants.ts, bars.ts, activities.ts, golf.ts, spa.ts, offers.ts, weddings.ts, footer.ts. Zero Strapi API or database calls from any Mazagan component.

Mazagan template works offline — immune to API downtime or CMS outages

One-Click Template Switcher

Template Switcher

Built a floating TemplateSwitcher.vue component and useHomepageTemplate.ts composable. Template state persists in a cookie and ?template= URL parameter. Switching between Queenco and Mazagan is instantaneous with no page reload.

Live brand portfolio demonstration — switch templates in a single click
v1.8PerformancePerformance & Stability

PWA, Icon System & Performance Optimization

Transformed the site into a Progressive Web App with offline service worker, optimized the icon system for zero CDN dependencies, and resolved all Chromium permissions policy violations.

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

Progressive Web App (PWA) with Service Worker

PWA

Integrated @vite-pwa/nuxt generating a service worker (sw.js + workbox) precaching 387 static routes. The PWA manifest enables Add to Home Screen on iOS and Android, with resort branding, standalone display mode, and offline fallback pages.

Resort website installable as a native app on any device

@nuxt/icon Static Bundling (Zero CDN)

Icon System

Audited all Lucide icon usage across 50+ components. Configured @nuxt/icon with serverBundle: false and clientBundle.scan: true so all icons are extracted at build time into a local JS bundle. Eliminated 100% of runtime CDN icon fetches.

Zero icon CDN dependency — all icons served from local bundle at sub-millisecond speed

Chromium Permissions Policy Resolution

Security & Compliance

Resolved Permissions-Policy violations from Chromium deprecating the unload event. Implemented a 3-layer solution: a runtime EventTarget patch redirecting unload to pagehide, a dynamic iframe MutationObserver auto-injecting allow="unload", and Nginx header broadcast (Permissions-Policy: unload=*).

Full bfcache eligibility and zero browser permission violations

HTML Minification Pipeline

Build Pipeline

Built a custom Node.js minification script (scripts/minify-html.mjs) that post-processes all 445 statically generated HTML files. Strips whitespace and optimizes attributes while strictly preserving Vue 3 SSR comment anchors to prevent hydration failures.

15-25% reduction in HTML payload weight across all prerendered routes
v1.9LocalizationCMS & Backend

Multilingual CMS Integration (EN, KM, ZH)

Full integration of Strapi v5 localization across English (EN), Khmer (KM), and Simplified Chinese (ZH).

Dining Venues Architecture: All 6 Outlets Mapped to Beachfront Wing

Property Architecture

Corrected resort property architectural mapping across all dining venues. Standardized all 6 restaurants, lounges, and bars exclusively to the Beachfront Wing with NO level or floor designations (the Beachfront Wing has no numbered levels; numbered floors belong exclusively to Tower Wing). Remediated historical "Tower Wing", "Level 1", "Level 2", and "Mezzanine" references across detail pages, schema address metadata, and photo gallery subtitles.

100% accurate property wayfinding and venue directory matching physical resort reality

Tri-Lingual Content Pipeline

i18n

Configured Nuxt i18n with localePath routing, language drop-up in footer, and localized Strapi API fetching.

Source of Truth Verification

Official Corporate Directory Synchronization

All social media profiles, concierge Telegram handles, and emergency communication lines are verified against the official Queenco Asia directory.

View QCMS Directory