Static Astro personal site built for GitHub Pages.
Install dependencies and start the dev server:
npm install
npm run devOpen http://localhost:4321.
For a production-style preview:
npm run build
npm run previewThis site is file-based. Content lives in:
src/content/posts/*.mdsrc/content/photos/*.mdpublic/images/photos/*
Scaffold new content with:
npm run new:post -- "Title"
npm run new:photo -- "Title" "C:\path\to\image.png"For the lowest-friction guided flow:
npm run publish:post
npm run publish:photoOptional flags:
--slug=my-custom-slug--date=2026-04-25--excerpt="Short summary"--reading-time="4 min read"--alt="Accessible alt text"--caption="Photo caption"--location="South Carolina"
publish:photo will copy the source image into public/images/photos/, optimize it as a PNG, and create the matching frontmatter file in src/content/photos/.
The site builds to static output and is designed for GitHub Pages. Deploys run through the workflows in .github/workflows/.