- Merge two-bar header into single nav bar: remove social icons top bar,
move search + cart icons next to hamburger menu
- Add /subscribe page with email signup form
- Fix blog images by restoring Squarespace CDN in next.config remotePatterns
- Compress footer into 4-column link layout, remove logo block
- Update Cynthia Trenshaw Poetry link to cynthiatrenshaw.com
- Add local images for homepage, about, IYOS, and artwork pages
- Add /wisdom-words page
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The `search: ''` setting in localPatterns was blocking image URLs
that include query parameters (width, quality, format). Removing
this restriction allows the /api/assets proxy URLs to pass through
Next.js image optimization.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Configure images.localPatterns to allow /api/assets/** with query strings
- Add /app/.next/cache as tmpfs for image optimization cache (read-only container)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Next.js image optimizer blocks internal Docker URLs due to SSRF
protection (private IP resolution). Instead, proxy assets through
/api/assets/[id] which fetches from internal Directus URL server-side.
This bypasses both Cloudflare Access and SSRF protection since the
<Image> src is a same-origin path, not an external URL.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Directus CMS is behind Cloudflare Access, which blocks the Next.js
image optimizer from fetching assets. Route image requests through the
internal Docker network (http://katheryn-cms:8055) instead.
- Add NEXT_PUBLIC_DIRECTUS_ASSET_URL/TOKEN env vars for client components
- Use DIRECTUS_INTERNAL_URL for server-side Directus API calls
- Convert store detail page from client to server component (data
fetching now happens server-side, not in browser)
- Add internal Docker hostname to Next.js remotePatterns
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add full-screen portrait hero with testimonial quote overlay
- Add social icons on hero section
- Add scroll indicator animation
- Add YouTube video background for In Your Own Skin section
- Add book section with Amazon embed
- Add Amazon images domain to Next.js config
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Parse Squarespace WordPress XML export and extract all blog posts
- Create blog listing page with posts grouped by year
- Create individual blog post pages with full content
- Add social sharing, prev/next navigation, related posts
- Configure Next.js for Squarespace CDN images
- Add Tailwind typography plugin for prose styling
- Include 357 artwork thumbnails from Airtable
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>