62 lines
2.1 KiB
Markdown
62 lines
2.1 KiB
Markdown
# 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
|