2025-12-27 11:54:59 +00:00

2.4 KiB

CLAUDE.md

Development guidance for this Astro template repository.

Commands

Core Development

pnpm dev              # Development server
pnpm build            # Build for production
pnpm preview          # Preview build with Wrangler
pnpm deploy           # Deploy to Cloudflare Pages

Utilities

pnpm commit           # AI-powered commit messages
pnpm convert:avif:all # Convert all images to AVIF
pnpm convert:avif:jpeg
pnpm convert:avif:png
pnpm cf-typegen       # Generate Cloudflare types

Change Documentation

IMPORTANT: Update dev/continuity.md when making changes to document:

  • What changed and why
  • Decisions made
  • Next steps

Architecture

Minimal Astro template with content-driven architecture:

Content Layer (src/content/)

  • blog/ - MDX blog posts with schema validation
  • sections/ - Homepage sections (hero, experience, skills, featured-project)
  • pages/ - Page-specific content (contact)

Schema defined in src/content.config.ts

Component Layer

  • Core UI: BlogCard, FormattedDate, Navigation, Footer, GridOverlay
  • Blog: BlogFilters, ReadingProgress, TableOfContents, PostNavigation, RelatedPosts
  • Sections: Hero, Experience, Skills, FeaturedProject

Routes

  • Static routes in src/pages/
  • Dynamic blog routes via [...slug].astro
  • Layouts in src/layouts/

Data Flow

Blog Index (src/pages/blog/index.astro):

  1. Fetch all posts via getCollection('blog')
  2. Sort by pubDate (newest first)
  3. Identify featured post (first with featured: true)
  4. Render featured hero + filterable grid
  5. Extract categories for filter UI

Individual Posts (src/pages/blog/[...slug].astro):

  1. getStaticPaths() generates routes
  2. Calculate previous/next posts (by date)
  3. Find related posts (matching category/tags, limit 3)
  4. Calculate reading time (200 wpm)
  5. Pass to BlogPost layout

Image Handling

  • src/assets/ - Processed by Astro (relative paths)
  • public/media/ - Served as-is (absolute paths like /media/file.mp4)
  • AVIF conversion utility available

Deployment

  • Cloudflare Pages adapter configured
  • Image service: "compile" mode
  • Platform proxy enabled for development

Utility Scripts

  • src/utils/convert-to-avif.js - Image optimization
  • src/utils/git-commit.js - AI commit message generation (requires OpenRouter API key in src/utils/.env)