Commit Graph

8 Commits

Author SHA1 Message Date
Jeff Emmett 5a8cf90ad5 fix(art): revert broken cache-buster that 400ed every /art image
CI/CD / deploy (push) Successful in 1m1s Details
The previous fix appended ?v=<buildtimestamp> to every artwork src, but
Next 16's localPatterns does not accept a ?v=* wildcard in the search
field, so the optimizer 400ed every versioned URL and every thumbnail
broke. Remove withVersion, the BUILD_VERSION env wiring, and the search
patterns from next.config.ts, and strip the handful of pre-existing
?v=2 query strings from code + seed data so /images/** matches the
simple no-query localPattern.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 13:13:36 -04:00
Jeff Emmett 164b86365a fix(art): deploy-time cache busting on artwork image URLs
CI/CD / deploy (push) Successful in 1m5s Details
Append a build-time asset version (?v=<BUILD_VERSION>) to every artwork
image rendered on /art. Stale Cloudflare edge caches from today's deploy
restarts were serving 502/404 for a subset of /_next/image URLs at some
PoPs; since the available CF API token lacks zone permissions to purge,
invalidating via query string forces a fresh optimizer fetch and guarantees
each deploy starts with a clean CDN cache for artwork images.

Expose NEXT_PUBLIC_ASSET_VERSION from next.config.ts (defaults to
Date.now() at build time) and widen localPatterns so /images, /uploads,
and /api/uploads accept either no query or a ?v=* version tag.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 13:03:01 -04:00
Jeff Emmett 4bd20ce51b fix(art): surface admin-managed artworks, drop home newsletter section, reword Jaguar Path hero
CI/CD / deploy (push) Successful in 1m10s Details
- Allow /uploads/** in next.config localPatterns so admin-uploaded images
  pass through the Next Image optimizer (previously returned 400, giving
  broken thumbnails on /art and /admin).
- Add a 'Currently Available' section to /art between Featured and
  Previous (Sold/Private), driven by artworks where category === 'available'
  and featured === false — so non-featured inventory entered via /admin is
  actually displayed.
- Remove the 'STAY CONNECTED / Be Part of the RE EVOLUTION' newsletter
  block from the home page now that the footer newsletter covers signups.
- Replace the Jaguar Path hero eyebrow / subtitle with a single line:
  'INTEGRATION CIRCLES & PURIFICATION RETREATS'.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 12:06:45 -04:00
Jeff Emmett 321e3e3f75 fix: cap image sizes and increase memory limit to stop 502 crash loop
Next.js image optimization was generating 3840px images that caused the
container to exceed its 128MB memory limit, triggering repeated restarts.
Capped deviceSizes to max 1200px and bumped mem_limit to 256MB.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 16:17:58 -04:00
Jeff Emmett 630312c7ea Site restructure + admin panel for self-management
- Split page.tsx into server component + home-client.tsx (data-driven)
- Add /about page with extended biography, Art as Ritual, Art in Motion
- Add /admin panel (password-protected) for artworks, events, services CRUD
- Restructure nav: Home | Art | Services | Re Evolution Art | About | Contact
- Services now show "How it works" / "Who it is for" bullet points
- Gallery: featured artworks (large), grid, sold/private carousel, lightbox with metadata
- "Future Gatherings" renamed to "PULSAR"
- JSON data layer with auto-seed from hardcoded content (/data volume)
- Image upload API with file type validation (max 10MB)
- HMAC session auth (Web Crypto API, Edge-compatible)
- Docker: named volume xhivart-data, /data directory, ADMIN_PASSWORD env

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 02:37:05 +00:00
Jeff Emmett 96172427fc Fix broken images on live site with cache-busting and proper headers
Cloudflare was caching 404 responses from before the tunnel was configured.
Added query params to bust stale cached 404s for featured.jpg and goddess.webp.
Added Cache-Control headers for /images/* to ensure proper long-term caching.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 12:25:14 +00:00
Jeff Emmett d5efb63145 Initial xhivart.ch mirror site implementation
Complete single-page application mirroring xhivart.ch content:
- Hero section with Ximena Xaguar branding
- Ritual Art Alchemy section
- Services section (Crystal Therapy, Temazcal, Deep Integration)
- Re Evolution Art cultural platform section
- Testimonials section
- About section
- Contact form
- Responsive navigation with mobile menu
- Footer with social links

Styling:
- Custom CSS variables for brand colors
- Elegant typography with Cormorant Garamond and Montserrat
- Glassmorphism navigation
- Fade-in animations
- Service cards with accent colors

Deployment:
- Docker configuration with standalone output
- docker-compose.yml for Traefik integration

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 01:30:30 +01:00
Jeff Emmett 8a19a9d94d Initial commit from Create Next App 2026-01-25 00:57:10 +01:00