============================================
ROOT CAUSE & PERMANENT SOLUTION
============================================
Date: January 14, 2026

ROOT CAUSE IDENTIFIED:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The website changes weren't reflecting due to TRIPLE-LAYER CACHING:

1. BROWSER CACHE
   - Following 30-day cache headers sent by backend

2. NGINX CACHE  
   - /assets/ served with: Cache-Control: max-age=2592000 (30 days)
   - Immutable flag prevents revalidation

3. BACKEND CACHE (backend/server.js)
   - express.static maxAge: "30d" for /public
   - express.static maxAge: "365d" for /assets
   - express.static maxAge: "365d" for /uploads
   - PM2 process keeps cache in memory

PERMANENT SOLUTION IMPLEMENTED:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 1. Cache-Busting Version Numbers
   - Updated all HTML files from v=1768447584 → v=1768448784
   - navbar.css?v=1768448784
   - main.css?v=1768448784
   - page-overrides.css?v=1768448784
   - Forces browser to fetch new versions

✅ 2. Backend Restart
   - PM2 restart skyartshop (PID: 458772)
   - Clears express.static() memory cache
   - Fresh process serves updated files

✅ 3. Nginx Configuration Fixed
   - Corrected paths: /var/www/skyartshop/ → /media/pts/Website/SkyArtShop/website/public/
   - Reloaded nginx with: sudo systemctl reload nginx

✅ 4. CSS Fix Applied
   - Added .sticky-banner-wrapper { position: sticky; top: 0; z-index: 1000; }
   - Navbar now stays fixed when scrolling

HOW TO APPLY FUTURE CHANGES:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
When you make CSS/JS changes that aren't reflecting:

1. UPDATE VERSION NUMBER (automatic):
   NEW_VERSION=$(date +%s)
   cd /media/pts/Website/SkyArtShop/website/public
   for file in *.html; do
     sed -i "s|navbar\.css?v=[0-9]*|navbar.css?v=$NEW_VERSION|g" "$file"
     sed -i "s|main\.css?v=[0-9]*|main.css?v=$NEW_VERSION|g" "$file"
   done

2. RESTART BACKEND (clears backend cache):
   pm2 restart skyartshop

3. CLEAR BROWSER CACHE:
   Hard refresh: Ctrl+Shift+R (Windows/Linux) or Cmd+Shift+R (Mac)

VERIFICATION CHECKLIST:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓ Backend online: PM2 PID 458772, status: online
✓ Nginx active: Configuration OK
✓ CSS serving: HTTP 200 with new version
✓ HTML updated: All 14 pages have v=1768448784
✓ Sticky navbar: CSS contains .sticky-banner-wrapper

The triple-layer caching issue is now permanently documented and solved!
