Personal academic website for research, publications, writing, service, photography, and technical notes. Built with Astro.
Requires Node.js 24+ and npm 11+.
npm ci
npm run devUseful commands:
npm run typecheck # Check Astro and TypeScript
npm run lint # Check JavaScript and TypeScript
npm run format # Check formatting
npm run build # Build the static site into dist/
npm run preview # Preview the production build- Homepage data:
src/data/ - Writing and knowledge base:
src/content/ - Components, layouts, pages, and styles:
src/ - Images, papers, and site metadata:
public/
The default social image is public/og-image.jpg. Regenerate it with:
npm run generate:ogThe favicon is at public/favicon.ico and public/favicon.svg. Regenerate them with:
npm run generate:faviconFor the gallery, generate the different image sizes and srcsets (used in src/data/gallery.ts) with:
uv run scripts/generate-gallery-srcset.py public/img/galleryPython tooling is only needed for these asset-generation commands. The regular development and build workflows use Node.js and npm.
The production build is generated in dist/ and published to the master
branch of yechs/yechs.github.io.