# CLAUDE.MD - AI Assistant Guide This file provides guidance for Claude Code and other AI assistants when working with the Cozy Den project. ## Project Quick Reference **Project:** Cozy Den - Personal landing page for hiddenden.cafe **Owner:** Latte (gay furry developer, values self-hosting and privacy) **Tech Stack:** Astro 4.x, TypeScript, Vanilla CSS, Docker + Nginx **Aesthetic:** Warm coffee/cappuccino theme, cozy hidden den vibes **Deployment:** Docker containers pushed to Gitea registry at git.hiddenden.cafe ## Core Design Principles 1. **Cozy Aesthetic** - Warm colors, coffee/cappuccino theme, hidden den vibes 2. **Self-Hosted** - Everything runs on personal infrastructure (homelab/VPS) 3. **Privacy First** - No tracking, no external dependencies 4. **Lightweight** - Static HTML/CSS, minimal JavaScript 5. **Docker-Ready** - Easy deployment via containers ## File Structure ``` src/ ├── layouts/ │ └── BaseLayout.astro # Base HTML layout + global styles + CSS variables ├── pages/ │ └── index.astro # Main landing page (all sections here) └── components/ # Empty - ready for future components public/ └── favicon.svg # Coffee emoji favicon ``` **Key Files:** - `src/layouts/BaseLayout.astro` - CSS variables, global styles, base HTML structure - `src/pages/index.astro` - All page content and section-specific styles - `astro.config.mjs` - Astro configuration - `Dockerfile` - Multi-stage build (Node builder + Nginx server) - `docker-compose.yml` - Local Docker Compose setup - `nginx.conf` - Production Nginx configuration ## Color System All colors use CSS custom properties in `src/layouts/BaseLayout.astro`: ```css --color-bg: #1a1410 /* Dark background (deep coffee) */ --color-bg-light: #2a1f18 /* Lighter background for cards */ --color-text: #f4e9d8 /* Cream text */ --color-text-dim: #c4b5a0 /* Dimmed text */ --color-accent: #d4a574 /* Warm accent (coffee with cream) */ --color-accent-bright: #e8bf8e /* Brighter accent for highlights */ --color-warm: #8b6f47 /* Warm brown for borders/accents */ ``` **To change theme:** Edit these variables. All components update automatically. ## Common Modification Patterns ### Adding a Section ```astro

Section Title

Content

``` ### Adding a Service ```astro

🔧 Service Name

Description of the service

``` ### Adding a New Page Create `src/pages/newpage.astro`: ```astro --- import BaseLayout from '../layouts/BaseLayout.astro'; ---

New Page

``` ## Development Workflow ```bash npm install # Install dependencies npm run dev # Start dev server (http://localhost:4321) npm run build # Build for production (output to dist/) npm run preview # Preview production build ``` ## Docker Workflow ```bash # Build image docker build -t cozy-den . # Run locally docker run -d -p 3000:80 --name cozy-den cozy-den # Or use Docker Compose docker-compose up -d # Tag for Gitea registry docker tag cozy-den git.hiddenden.cafe/mats/cozy-den:latest # Push to Gitea docker login git.hiddenden.cafe docker push git.hiddenden.cafe/mats/cozy-den:latest ``` ## Important Implementation Guidelines ### DO: - Maintain the cozy, warm aesthetic (coffee theme) - Keep the site lightweight and fast (static HTML/CSS) - Use CSS custom properties for all colors - Add `.fade-in` class for animations - Test both dev and production builds - Verify Docker build works after changes - Use semantic HTML with consistent `.card` class styling - Ensure responsive design works on mobile - Be warm and friendly in communication (matches site vibe) - Focus on practical implementation - Respect the furry community context ### DON'T: - Add tracking or external dependencies - Make the site heavy or complex - Use JavaScript unless absolutely necessary (site is pure HTML/CSS) - Create sterile or corporate design elements - Add features not explicitly requested - Break the coffee/warm color theme - Ignore accessibility considerations ## Astro-Specific Notes - **File Extensions:** `.astro` for components, `.mjs` for config - **Frontmatter:** Code between `---` runs at build time - **Styling:** `