This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
npm run devornpm start- Start development servernpm run build- Build production sitenpm run preview- Preview production build locally
npm run lint- Run ESLintnpm run lint:fix- Fix ESLint issuesnpm run format- Check Prettier formattingnpm run format:fix- Fix Prettier formattingnpm run stylelint- Run Stylelint for CSSnpm run stylelint:fix- Fix Stylelint issuesnpm run knip- Check for unused dependencies/exports
npm run check- Run Astro type checkingnpm run update:data- Update content data
- Framework: Astro 5.x
- Styling: TailwindCSS 4.x with custom CSS variables
- Images: Sharp for image processing, Satori for Open Graph images
src/
├── api/ # Data access layer and content parsing
├── components/ # Shared components organized by purpose
├── css/ # Global CSS and styles
├── features/ # Feature-specific components and logic
├── pages/ # Astro pages and API routes
└── utils/ # Shared utility functions
content/
├── data/ # JSON data files (booklog, movielog)
└── assets/ # Static images and media files
Component Architecture:
- Shared components live in
/components/organized by purpose (e.g., update-list, grade, sub-heading) - Feature-specific components are in
/features/(e.g., home) with co-located getProps functions - Components follow a props-based pattern with TypeScript interfaces
Path Aliases: ~/* maps to src/* for clean imports
ESLint Config: Comprehensive setup including Astro, TypeScript, Unicorn, and Perfectionist plugins with custom rule overrides
Build Optimization: Astro configured with inlined stylesheets
- The site focuses on movie and book reviews with a content-driven architecture
- All imports use TypeScript path aliases (
~/) - Content data updates require running the
update:datascript