# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Project Overview Astro 5 blog with Cloudflare Pages deployment. Uses PNPM as package manager. ## Commands ```bash pnpm dev # Start dev server at localhost:4321 pnpm build # Build production site to ./dist/ pnpm preview # Build and preview locally via Wrangler pnpm deploy # Build and deploy to Cloudflare Pages pnpm cf-typegen # Generate Wrangler types for Cloudflare bindings ``` ## Architecture ### Content System - Blog posts in `src/content/blog/` as Markdown/MDX files - Content schema defined in `src/content.config.ts` with Zod validation - Required frontmatter: `title`, `description`, `pubDate` - Optional frontmatter: `updatedDate`, `heroImage` ### Routing - `src/pages/` - File-based routing - `src/pages/blog/[...slug].astro` - Dynamic blog post routes - `src/pages/rss.xml.js` - RSS feed endpoint ### Components - `src/components/BaseHead.astro` - SEO metadata, og:image, Twitter cards - `src/layouts/BlogPost.astro` - Blog post layout template - `src/consts.ts` - Site title and description constants ### Styling - Tailwind CSS via Vite plugin - Design tokens in `src/styles/global.css` as CSS custom properties - Current accent color: `#2337ff` (blue) - Max content width: 720px ### Cloudflare Integration - Adapter: `@astrojs/cloudflare` with platform proxy enabled - Wrangler config: `wrangler.jsonc` - Environment types: `src/env.d.ts` - Node.js compatibility enabled via `nodejs_compat` flag ## Design Specification `design.json` contains V7 Industrial Dark Mode system specification (not yet implemented): - Dark mode native with `#0B0D11` primary background - Orange/yellow accent `#FFB84C` for CTAs - Brutalist/industrial aesthetic with visible grid structure - Heavy typography emphasis ## Key Configuration - **Site URL**: Currently `https://example.com` in `astro.config.mjs` - update for production - **Project name**: `nicholai-work-2026` in `wrangler.jsonc` - **TypeScript**: Strict mode with Astro and Cloudflare Worker types