Academic portfolio built with Astro and Tailwind CSS v4.
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview├── src/
│ ├── components/ # Reusable Astro components
│ ├── layouts/ # Page layouts
│ ├── pages/ # Routes (index.astro = homepage)
│ ├── styles/ # Global CSS with Tailwind v4
│ └── data/ # YAML data files for content
├── public/ # Static assets (images, PDFs, etc.)
└── dist/ # Build output (generated)
- Framework: Astro 5.14.1
- Styling: Tailwind CSS 4.1.14
- Build Tool: Vite (bundled with Astro)
- Node: v22 (LTS)
- TypeScript: Strict mode enabled
All content is managed through YAML files in src/data/:
hero.yaml- Name, position, contact linksabout_me.yaml- Bio statementeducation.yaml- Degrees and institutionsconference_publications.yaml- Published papersworkshop_publications.yaml- Workshop papersteaching.yaml- Talks and presentationsexperience.yaml- Work historyskills.yaml- Technical skills
Tailwind CSS v4 is configured in src/styles/global.css. Custom theme variables:
- Custom fonts: Lustria (headings), Lato (body)
- Custom utility:
.shadow-underlinefor link styling
Automatically deployed to GitHub Pages via GitHub Actions on push to main branch.
Build output from dist/ is published to the gh-pages branch with CNAME yashsavani.com.