Personal profile and blog site - theopinard.github.io/about-me
Built with Astro, deployed via GitHub Actions to GitHub Pages.
npm install
npm run dev # dev server at localhost:4321
npm run build # build to dist/
npm run preview # preview built siteEditable site content is centralized in src/content/site/:
home.md- profile, bio, work history, education, skills, and selected talksblog.md- all blog post metadata in thepostsarraytalks.md- all talk metadata in thetalksarraycommunity.md- community page copy, metrics, and conferences
Stable page anchors come from each blog post or talk id, for example /blog#2025-from-trees-to-transformers.
Public assets live under public/assets/:
assets/profile/- profile photoassets/community/- community page photosassets/blog/- blog thumbnailsassets/logos/- conference, event, and community logos
Store asset paths in content without the /about-me base path, for example:
image: assets/blog/plista.webp
logo: assets/logos/europython-2023.webpAstro page code prepends import.meta.env.BASE_URL, so these paths work under GitHub Pages.
Push to main -> GitHub Actions builds and deploys automatically.
One-time setup: In GitHub repo settings -> Pages -> Source -> GitHub Actions