This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a modern, minimalist portfolio template built with Astro and Tailwind CSS v4. It's designed to be easily customizable through a single configuration file while maintaining a clean, professional appearance.
- Astro: Static site generator
- Tailwind CSS v4: Utility-first CSS framework using the new @tailwindcss/vite plugin
- TypeScript: For type-safe configuration
- Tabler Icons: Icon library
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production buildThe project follows a component-based architecture with all customization centralized in src/config.ts:
- Components (
src/components/): Individual Astro components for each section (Hero, About, Projects, Experience, Education, Header, Footer) - Main Layout (
src/pages/index.astro): Single-page layout that imports all components - Configuration (
src/config.ts): Single source of truth for all content and customization
- Single Configuration File: All content is managed through
src/config.tsto make customization simple - Conditional Rendering: Sections automatically hide if their data is removed from the config
- Component Independence: Each section is a self-contained component that reads from the config
- Accent Color System: Single
accentColorin config propagates throughout the site via CSS custom properties
- The site uses Tailwind CSS v4 with the Vite plugin configuration
- No linting or testing framework is currently configured
- All components are in
.astroformat (not React/Vue/etc) - The project uses IBM Plex Mono font loaded from Google Fonts
- Social links in the config are all optional and will conditionally render
When modifying components:
- Components read directly from the imported
siteConfigobject - Use Tailwind utility classes for styling
- Maintain the existing monospace font aesthetic
- Use Tabler Icons for consistency with existing icons
The src/config.ts exports a siteConfig object with these sections:
- Basic info: name, title, description, accentColor
- Social links: email, linkedin, twitter, github (all optional)
- aboutMe: string
- skills: string[]
- projects: array of {name, description, link, skills}
- experience: array of {company, title, dateRange, bullets}
- education: array of {school, degree, dateRange, achievements}