A static personal site built with Astro: about on the home page, plus resume and a Markdown blog. Meant for GitHub Pages.
npm install
npm run devOpen the URL the CLI prints (default http://localhost:4321).
npm run build
npm run preview- Edit
src/data/site.ts: name, title, about, skills, experience, education, projects, and social links. - Replace the samples in
src/content/blog/with your own posts. Setdraft: truein the frontmatter to hide a post. - To offer a resume PDF, put the file at
public/resume.pdfand setsite.resumePdfto"/resume.pdf". - To preview a project-site path locally:
PUBLIC_BASE_PATH=/personal_web/ npm run dev- Push this project to GitHub on the
mainbranch. - In the repo, open Settings → Pages → Build and deployment and choose GitHub Actions.
- After each push,
.github/workflows/deploy.ymlbuilds and publishes the site.
The workflow sets the path from the repository name:
| Repository name | URL | base |
|---|---|---|
username.github.io |
https://username.github.io/ |
/ |
Anything else (e.g. personal_web) |
https://username.github.io/personal_web/ |
/personal_web/ |
Locally, base defaults to /. To override it, set PUBLIC_SITE_URL and PUBLIC_BASE_PATH (see astro.config.mjs).
- Astro 5 (static output)
- Tailwind CSS 4
- Content Collections (Markdown posts)