This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
pnpm dev # Start dev server
pnpm build # Build for production (static output to dist/)
pnpm preview # Preview production build locallyNo lint or test commands are configured.
This is an Astro 5 static blog/portfolio site deployed to GitHub Pages at https://codykn.github.io.
Content lives in src/content/ as Markdown/MDX files, split into two collections:
blog/— blog postsprojects/— project showcases
Schemas are defined in src/content.config.ts using Zod. Pages use getCollection() at build time and getStaticPaths() for dynamic routes ([...slug].astro).
File-based routing under src/pages/:
/blog/[...slug].astro— individual blog posts (usesBlogPostlayout with JSON-LD structured data)/projects/[...slug].astro— individual project pages/tags/[tag].astro— tag filter pages (auto-generated from post tags)rss.xml.jsandrobots.txt.ts— programmatic non-HTML routes
Layout.astro— base layout (wrapsBaseHead,Header,Footer)BlogPost.astro— extends Layout; adds post metadata, medium-zoom for images, JSON-LDsrc/consts.ts— site-wide constants (site title, description, nav items)src/utils/index.ts— URL generation and tag utilitiessrc/assets/icons.ts— SVG icon definitions
Plain CSS in src/styles/global.css using CSS variables for dark/light theming. Max content width is 720px. No CSS framework.
GitHub Actions (.github/workflows/deploy.yml) auto-deploys to GitHub Pages on push to main using pnpm and Node 20.