- Remove PORTFOLIO and BOOK buttons, cards now fully clickable
- Add top-to-bottom wipe animation with curved SVG path boundary
- Portfolio images cycle on each hover and come from database
- Integrate useActiveArtists hook to fetch portfolio from D1
- Merge database portfolio images with static artist metadata
- Remove experience pill from cards for cleaner design
- Add framer-motion for smooth animations (0.5s easeInOut)
- Graceful fallback to static data during loading/errors
- Keep profile photos from static data for now
-claude
- Add Deziree Stanford as apprentice artist (deztheory24@gmail.com)
- Add Kaori Cedre as full-time artist with 5+ years experience
- Remove profile photos for Angel Andrade, Heather Santistevan, and Pako Martinez (set to placeholder)
- Update Amari Kyss profile info (specialty, bio, experience)
- Added both new artists to all D1 database environments (local, preview, production)
-claude
Replaced NextAuth's built-in OAuth provider (incompatible with Cloudflare
Workers) with custom OAuth implementation using native fetch API.
Features:
- Custom OAuth flow compatible with Cloudflare Workers edge runtime
- Auto-provisions users from Nextcloud based on group membership
- Group-based role assignment (artists, shop_admins, admins)
- Auto-creates artist profiles for users in 'artists' group
- Seamless integration with existing NextAuth session management
Technical changes:
- Added custom OAuth routes: /api/auth/nextcloud/authorize & callback
- Created Nextcloud API client for user provisioning (lib/nextcloud-client.ts)
- Extended credentials provider to accept Nextcloud one-time tokens
- Added user management functions to database layer
- Updated signin UI to use custom OAuth flow
- Added environment variables for OAuth configuration
Documentation:
- Comprehensive setup guide in docs/NEXTCLOUD-OAUTH-SETUP.md
- Updated CLAUDE.md with new authentication architecture
Fixes: NextAuth OAuth incompatibility with Cloudflare Workers (unenv https.request error)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Set explicit 60px height on construction banner
- Use proper flexbox centering in banner container
- Apply top: 60px to navigation when banner is present
- Add smooth transition for banner show/hide
- Remove CSS that moved navigation position (was causing alignment issues)
- Add body padding instead to make room for banner
- Navigation now stays at top:0 with proper internal alignment maintained
- Add specific CSS rules to maintain proper vertical alignment
- Ensure navigation items stay centered when banner pushes nav down
- Fix visual offset issue between logo and navigation items
- Add ConstructionBanner component with warning icon and phone number
- Integrate banner into ClientLayout above all content
- Add CSS to automatically adjust navigation position when banner is visible
- Banner is dismissible with localStorage persistence
- Phone number: (719) 698-9004 for bookings
- Yellow/amber theme matching dark design
Update documentation to reflect that Next.js Image component is not
compatible with Cloudflare Workers runtime. Document the use of native
lazy loading as the solution.
🐛 Bug Fix:
The Next.js <Image> component requires Node.js APIs that aren't available
in Cloudflare Workers runtime, causing 'Image constructor: new is required' errors.
Changes:
- Revert hero-section.tsx to use background-image CSS
- Revert artists-section.tsx to use native <img> tags
- Add loading='lazy' attributes for native lazy loading
- Keep images.unoptimized: true in next.config.mjs
- Add clear comment explaining Cloudflare compatibility requirement
✅ What's Still Working:
- All SEO improvements (metadata, Open Graph, Twitter Cards)
- JSON-LD structured data (LocalBusiness, Organization)
- Canonical URLs on all pages
- Font preloading
- Page-specific metadata
Note: Native <img> tags with loading='lazy' provide basic optimization
without requiring Next.js Image APIs. For Cloudflare R2 image optimization,
consider using Cloudflare Images service separately.
Issue: #GH-419 (React error)
Platform: Cloudflare Workers
- Enhanced .gitignore with Next.js 15, Cloudflare, and modern tooling patterns
- Added comprehensive coverage for .open-next/ and .wrangler/ build directories
- Removed accidentally committed build artifacts from version control
- Added patterns for Vitest, Supabase, Tanstack Query, and other dependencies