Commit Graph

49 Commits

Author SHA1 Message Date
Jeff Emmett 5ee9afd593 feat: add contact button to Jaguar Path CTA section
CI/CD / deploy (push) Successful in 1m24s Details
Adds a "Get in Touch" button linking to /contact page between
the Eventfrog booking and Instagram buttons.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 18:44:04 -04:00
Jeff Emmett bd1d83f4e0 fix: vertically center about page hero content using page-hero class
CI/CD / deploy (push) Successful in 1m8s Details
Replaced custom py-16/py-20 padding with the standard page-hero class
so the hero content is properly centered like on other pages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 18:16:24 -04:00
Jeff Emmett b94104f84f feat: add crystal therapy and mujer medicina photos to Jaguar Path page
CI/CD / deploy (push) Successful in 1m12s Details
Adds two inline image sections with text — crystal therapy between
description and offerings, mujer medicina between offerings and details.
Follows the services page alternating image/text grid pattern.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 18:06:43 -04:00
Jeff Emmett 041a064d44 feat: add Jaguar Path landing page for Integration Circles event series
CI/CD / deploy (push) Successful in 1m17s Details
New event landing page at /jaguar-path for Ximena's Zurich Integration Circles
(April & May 2025) with hero, offerings grid, dates, and Eventfrog/Instagram CTAs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 17:59:27 -04:00
Jeff Emmett b2658e0c34 fix: clean up about page hero — remove bg image, shrink title, dedupe photo
Removed the faded portrait background from the hero section, reduced
the title from 5xl/6xl to 3xl/4xl, and kept only the single portrait
in the intro grid instead of duplicating it in the hero.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 16:25:20 -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 b0b50bb07c fix: add init:true to docker-compose for Node signal handling
CI/CD / deploy (push) Successful in 30s Details
Node.js as PID 1 in Docker doesn't handle signals properly,
causing intermittent clean exits (exit code 0) under the
traefik-public network. Using tini via init:true fixes this.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 12:19:05 -04:00
Jeff Emmett c9dc807d28 Sync xhiva.art content with live xhivart.ch updates
CI/CD / deploy (push) Successful in 56s Details
Update all page content, service definitions, testimonials, events,
footer, and about page structure to match the live Squarespace site.
Key changes: 5 process components replacing 8 methodology steps,
7 full-length testimonials, 3-column homepage services grid,
restructured about page with biography sections, XHIVA branding.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 15:11:31 -04:00
Jeff Emmett 54b321dbe9 ci: retrigger pipeline
CI/CD / deploy (push) Successful in 1m25s Details
2026-04-02 15:12:34 -07:00
Jeff Emmett 0bf2a8c122 ci: retrigger pipeline
CI/CD / deploy (push) Has been cancelled Details
2026-04-02 15:06:41 -07:00
Jeff Emmett 991059020b Add untracked source files from site restructure
CI/CD / deploy (push) Successful in 1m18s Details
Components, CMS, data modules, and page routes were created during
the Feb 23 restructure but never committed to git. This broke CI
builds as git clone wouldn't include them.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 12:23:04 -07:00
Jeff Emmett c7b97aa0cc ci: use internal registry (bypass Cloudflare upload limit)
CI/CD / deploy (push) Failing after 41s Details
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 10:47:08 -07:00
Jeff Emmett 7e3ed3da6c ci: add Gitea Actions CI/CD pipeline
CI/CD / deploy (push) Waiting to run Details
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 10:34:25 -07:00
Jeff Emmett adea13d820 Change Painting & Art Collection image to painting-process
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 06:57:09 +00: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 b377c9a3b1 Add Docker healthcheck to docker-compose.yml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:49:22 -07:00
Jeff Emmett 71552f6f83 Add .dockerignore for optimized Docker builds
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:49:13 -07:00
Jeff Emmett 4c49c5356a Add @types/nodemailer for TypeScript build
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:09:21 -07:00
Jeff Emmett 8ebd81de2a Update package-lock.json for nodemailer dependency
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:08:06 -07:00
Jeff Emmett 4febc3b11d Replace Resend with Mailcow SMTP via nodemailer
- Swap resend SDK for nodemailer in contact form API route
- Update docker-compose.yml env vars: RESEND_API_KEY → SMTP_*
- Update package.json: resend → nodemailer dependency
- Remove Vercel deploy boilerplate from README

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:07:20 -07:00
Jeff Emmett d497c5735e Fix cropped heads in Art in Motion, shrink social cards
- painting-process and portrait-3: object-position top to show heads
- Social cards grid: constrained to max-w-4xl (~25% smaller)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 22:01:39 +00:00
Jeff Emmett a44b7848dd Fix lightbox: close when clicking outside the photo itself
Move stopPropagation from the outer container to the image
element only, so clicking dark space around the photo closes
the lightbox.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 20:29:38 +00:00
Jeff Emmett 82ba5bb21a Art in Motion 3x2 grid, Instagram-style social cards
- Art in Motion: 3-column grid with 4:3 aspect ratio, 2 rows of 3
- Connect on Socials: restyled as Instagram post cards with profile
  header, action icons (heart, comment, share), white card with
  shadow and gradient avatar ring

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 20:24:26 +00:00
Jeff Emmett cd496e7807 Move Mural Bio Centro to Art in Motion, remove 3 gallery items
- Mural Bio Centro Guembe moved to Art in Motion (shows Ximena painting)
- Removed from gallery: Night Guardians, Ayahuaska, Detail — Face

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 20:19:04 +00:00
Jeff Emmett 9413d97361 Add gallery lightbox, reorganize About/Art in Motion sections
- Gallery: clicking any artwork opens a full-size lightbox overlay
  with X button and click-outside-to-close
- About: remove 4-photo grid, move those photos to Art in Motion
- Art in Motion: keep only photos showing Ximena (5 process/portrait
  photos), move art-only photos up to gallery section
- Work With Me: show full Wayra painting with object-contain
  instead of cropping

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 20:08:24 +00:00
Jeff Emmett 738b70dc94 Add Wayra background image to Work With Me section
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 20:04:05 +00:00
Jeff Emmett 740d9b7d11 Add 23 new artworks, process photos, and custom favicon
- Add 23 new visionary art pieces to gallery (35 total)
- Add 10 process/portrait photos in new "Art in Motion" section under About
- Replace favicon with custom gold lotus-eye icon matching brand aesthetic
- Add apple-touch-icon and PWA icon sizes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 19:59:31 +00:00
Jeff Emmett 90a62a1b8e Make Re Evolution Art logo responsive and centered on mobile
Use w-full max-w-96 with aspect ratio instead of fixed width

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 18:39:37 +00:00
Jeff Emmett 9b9ad7d139 Reduce whitespace around Re Evolution Art logo
Scale logo up and clip padding from source image

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 18:20:36 +00:00
Jeff Emmett 075c3c589f Triple Re Evolution Art logo size
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 18:16:17 +00:00
Jeff Emmett 7c088b9a7c Update booking links to booking.xhiva.art
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 17:40:03 +00:00
Jeff Emmett 6c45da3b5d Rebrand to XHIVA ART, shorten Soul Portrait description
- Update header, footer brand, and copyright to XHIVA ART
- Condense Soul Portrait service description to match other cards

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 17:38:26 +00:00
Jeff Emmett 1e2ce584a0 Add xhiva.art domain to Traefik routing
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 17:34:14 +00:00
Jeff Emmett 7a3805e05c Clean up footer, fix IG carousel images, remove signature badge
- Remove SoundCloud link from footer Connect section
- Remove repeated social media handles from footer Brand section
- Replace broken IG carousel images (sacred-geometry.jpg, crystal-1.jpg) with existing art
- Remove "SIGNATURE METHODOLOGY" badge from Soul Portrait service card

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 17:24:52 +00:00
Jeff Emmett 9675be7d35 Update booking URL to xhiva-booking.jeffemmett.com
Cloudflare free SSL doesn't cover multi-level subdomains like
book.xhivart.jeffemmett.com, switched to single-level subdomain.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 15:18:50 +00:00
Jeff Emmett 1e4ed37fba Add Soul Portrait - Art Alchemy service and Cal.com booking links
- Add 4th service card: Soul Portrait (Art Alchemy) with signature
  methodology badge, using soul-agreement artwork
- Change services grid from 3-column to 2-column for 4 cards
- Update "Book a Session" buttons to link to book.xhivart.jeffemmett.com
  (Cal.com self-hosted booking platform)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 15:11:59 +00:00
Jeff Emmett add2109e88 Add social links to Re Evolution Art section and new social connect section
- Re Evolution Art: replace generic Explore Events button with Instagram
  and Facebook Community buttons linking to @reevolutionart and FB group
- New SocialSection before footer with image grid carousel linking to
  @xhiva_art Instagram, plus Follow buttons for Instagram and Facebook

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 15:03:49 +00:00
Jeff Emmett 017a67e2a0 Add functional contact form with Resend email delivery
- Create /api/contact route that sends form submissions to xhivart@gmail.com
- Wire up ContactSection with state management, validation, and UX feedback
- Add loading, success, and error states to the contact form
- Use Resend SDK with reply-to set to sender's email for easy replies
- Add RESEND_API_KEY to docker-compose environment
- Fix dj-xhiva.jpg positioning to show top of photo

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 15:00:11 +00:00
Jeff Emmett faf4d918f7 Adjust image positioning to keep figures visible in cropped views
- portrait-1.jpg: shift focus left (30%) to keep seated figure visible
- dj-xhiva.jpg: shift focus up (30%) to keep DJ's face/head in frame

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 14:47:02 +00:00
Jeff Emmett ec4702bf98 Fix CSS cascade layer issue preventing Tailwind utilities from working
Wrap custom styles in @layer base and @layer components so Tailwind
utility classes (mx-auto, text-center, mb-6, etc.) can properly
override them per the CSS Cascade Layers spec.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 13:03:44 +00:00
Jeff Emmett 10d05736d3 Center text content in Ritual Art Alchemy and About sections
Removed md:text-left overrides and md:ml-0 from dividers so text,
headings, dividers, and buttons are consistently centered across
all breakpoints in both two-column layout sections.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 12:48:25 +00:00
Jeff Emmett 83a462056b Add Facebook link and update Instagram label in footer
Added facebook.com/XimenaXhivart to both the social links and
connect sections. Updated Instagram label to show @xhiva_art handle.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 12:42:42 +00:00
Jeff Emmett 681ee2f883 Add Krown and Narrenschiff brand fonts to Re Evolution Art section
Krown (bold geometric sans-serif) used for titles, Narrenschiff
(modern geometric) used for body text in the Re Evolution Art section
to match the brand identity.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 12:34:10 +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 05aa076eb5 Increase spacing above buttons throughout site
- Hero: mb-14 → mb-16
- Ritual Art: mb-10 → mb-12, added pt-2 to button wrapper
- About: mb-10 → mb-12, added pt-2 to button wrapper
- Work With Me: mb-12 → mb-16
- Services CTA: mt-16 → mt-20
- Re Evolution CTA: mt-16 → mt-20
- Contact form button: mt-2 → mt-4

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 22:53:52 +01:00
Jeff Emmett c93279fe35 Fix spacing and centering throughout the site
- Standardize section header spacing (mb-12 after headers)
- Fix divider alignment (ml-0 instead of mx-0 for left-aligned text)
- Add proper button centering with flex justify-center items-center
- Increase spacing between content and CTAs (mb-10, mb-12, mb-14)
- Wrap buttons in proper centering containers
- Consistent heading margins (mb-6 before dividers)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 22:50:18 +01:00
Jeff Emmett 7a2c174c24 Add all images from xhivart.ch and update page to display them
Images downloaded from original site:
- Hero: Main background image
- Art Gallery: 24+ visionary artworks (Goddess, Mujer Medicina, Shiva,
  Twin Flames, Soul Agreement, Madre, etc.)
- About: 5 portrait photos and Pachamama artwork
- Services: Crystal therapy, Temazcal, Deep integration photos
- Re Evolution Art: Event photos, DJ Xhiva, tribal nights, logo
- Icons: Navigation/footer decorative elements

Updated page.tsx:
- Added new GallerySection with interactive grid of artworks
- Hero section now uses background image with gradient overlay
- Services section shows photos above each service card
- Re Evolution Art section displays event photos and logo
- About section shows portrait with additional photo grid
- All images use Next.js Image component for optimization

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 13:15:23 +01: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