This repository now powers the live Astro version of https://ashwch.com.
- Live site: Astro
- Hosting: Cloudflare Pages
- Production domain:
ashwch.com - Pages project:
ashwch-main-site - Custom-domain route preservation:
cloudflare/ashwch-astro-domain-proxy.mjs - Historical Pelican stack:
archive/pelican/
If you are working on the current site, read:
AGENTS.mdsite/README.mddocs/plans/cloudflare-pages-deployment.md
.
├── site/ # Astro app
├── content/ # Source content and images
│ ├── articles/
│ ├── pages/
│ └── images/
├── scripts/ # Photography/content helper scripts
├── cloudflare/ # Custom-domain Worker source
├── docs/ # Current docs and plans
└── archive/pelican/ # Historical Pelican stack and docs
From site/:
pnpm install
pnpm dev
pnpm check
pnpm buildNotes:
pnpm checkandpnpm buildautomatically sync content and assets first.content/is still the source of truth for articles, pages, and images.site/src/content/**is generated output. Do not hand-edit it.
- Articles live in
content/articles/*.md - Static pages live in
content/pages/*.md - Shared images live in
content/images/** - Shared acronym definitions live in
abbreviations.md - Cross-site repost workflow:
docs/runbooks/blog-reposting.md(why one site owns the full article and the other keeps a short stub)
Astro migration/sync scripts:
site/scripts/migrate-pelican-content.mjssite/scripts/sync-static-assets.mjssite/scripts/sync-unsplash.mjs
Current helper commands:
uv run scripts/photo_manager.py
python3 scripts/set_photo_order.pyFor the full current workflow, see:
docs/workflows/PHOTOGRAPHY_WORKFLOW.md
The current site is deployed by GitHub Actions direct-uploading Astro build output to Cloudflare Pages.
- PRs can publish preview deployments
- pushes/merges to
masterupdate the Pages production deployment
Relevant workflows:
.github/workflows/astro-site-ci.yml.github/workflows/astro-pages-deploy.yml
ashwch.com sits behind a small Worker so legacy .html URLs continue to work even though Cloudflare Pages normalizes routes on its project domain.
Worker source:
cloudflare/ashwch-astro-domain-proxy.mjs
The old Pelican site, theme, configs, and helper scripts have been moved to:
archive/pelican/
That archive is kept for historical reference so nothing is lost, but it is no longer the current production path.