This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
pnpm dev- Start development server (http://localhost:4321)pnpm build- Build for productionpnpm preview- Preview production build
pnpm install- Install dependencies (Node.js 18+ required)
This is an Astro-based academic research group website with React components for interactivity.
- Astro 5.6.1 - Static site generator with partial hydration
- React 19 - Interactive components (client:load directive)
- Tailwind CSS v4 - Styling with shadcn/ui components
- TypeScript - Full type safety
- MDX - Rich content with components
Content is managed through multiple sources:
-
Google Sheets (ID:
1Mjn0C3gjSr5Wl2ZG41X813LLhL-y47DvLeEUCmagTe8):currentsheet - Current team membersalumnisheet - Former team memberssoftwaresheet - Software tools & databases
-
Dynamic loaders in
src/content/loaders/:pmc.ts- Fetches publications from PubMedfunding.ts- Fetches funding datagithub.ts- Fetches GitHub team datagoogle-sheets.ts- Custom loader for Google Sheets content
-
MDX files in
src/content/home_page/for rich homepage content
- Professional Career:
"period | position || period | position" - Education:
"period | degree || period | degree" - Software Categories: Comma-separated values (e.g.,
"featured, tool")
- File-based routing in
src/pages/ - Dynamic routes:
/person/[slug]for team member profiles - Single layout (
src/layouts/Layout.astro) handles navigation, dark mode, and SEO
- Astro components (
.astro) for static content - React components (
.tsx) for interactivity (tabs, dialogs, mobile nav) - UI components from shadcn/ui in
src/components/ui/
GH_TOKEN- Required for GitHub API loader (team data)
- Site URL:
https://saezlab.org - Static output to
dist/directory - GitHub Pages deployment via Actions