A lightweight, static, and maintainable personal academic homepage for graduate school / PhD / RA / summer research applications.
- Astro
- TypeScript
- Tailwind CSS
- Pure static output (no backend, no database)
.
├─ astro.config.mjs
├─ package.json
├─ postcss.config.cjs
├─ tailwind.config.mjs
├─ tsconfig.json
├─ public/
│ └─ .nojekyll
└─ src/
├─ components/
│ ├─ Footer.astro
│ ├─ Navbar.astro
│ ├─ ProfileHero.astro
│ ├─ ProjectCard.astro
│ └─ SectionTitle.astro
├─ data/
│ ├─ profile.ts
│ └─ projects.ts
├─ layouts/
│ └─ Layout.astro
├─ pages/
│ └─ index.astro
├─ styles/
│ └─ global.css
└─ env.d.ts
Edit only these files to update your profile content:
src/data/profile.tssrc/data/projects.ts
npm install
npm run devOpen http://localhost:4321.
npm run build
npm run previewProduction files are generated in dist/.
- Push this project to GitHub.
- In repository settings, open Pages and choose GitHub Actions as the source.
- This step is mandatory before the first successful workflow run. If it is not enabled yet,
actions/configure-pageswill fail with a "not enabled and configured to build using GitHub Actions" error. - This repository already includes deploy.yml, which will:
- install dependencies
- build the Astro site
- deploy
dist/to GitHub Pages automatically on every push tomain
- This workflow is configured for this repository with:
PUBLIC_SITE_URL=https://ruikerliang.github.ioPUBLIC_BASE_PATH=/
- Build locally:
PUBLIC_SITE_URL=https://ruikerliang.github.io PUBLIC_BASE_PATH=/ npm run build - Upload
dist/to your Pages branch / hosting target. - Keep the same environment variables if you want canonical links and static asset paths to match the deployed site.
- Current Pages site is configured with
PUBLIC_SITE_URL=https://ruikerliang.github.ioandPUBLIC_BASE_PATH=/. - The site is fully static and suitable for fast deployment and maintenance.