An interactive and modern CV developed with Astro, React and Tailwind CSS that presents my professional experience in a dynamic and attractive way.
- Interactive Design: Fluid animations with Framer Motion and GSAP
- Dark/Light Mode: Customizable theme with smooth transitions
- Custom Cursor: Animated cursor that follows the user
- PDF Export: Functionality to download the CV as PDF
- Responsive Design: Optimized for all devices
- Print Optimized: Specific styles for printing
- Performance: Built with Astro for maximum speed
- Astro - Modern framework for static sites
- React 19 - UI library for interactive components
- TypeScript - Static typing for greater robustness
- Tailwind CSS 4 - Utility-first CSS framework
- Framer Motion - Animations and gestures
- GSAP - Advanced animations
- React Icons - Icon library
- Class Variance Authority - Variant components
- Clsx & Tailwind Merge - CSS utilities
- html2canvas - DOM screenshot capture
- jsPDF - PDF generation
- html2pdf.js - HTML to PDF conversion
src/
βββ components/
β βββ cv/ # CV components
β βββ ui/ # Generic UI components
βββ data/
β βββ cv-content.json # CV data
βββ layouts/
β βββ Layout.astro # Main layout
βββ pages/
β βββ index.astro # Main page
βββ lib/
β βββ utils.ts # Utilities
βββ styles/
βββ global.css # Global styles
- Node.js 18+
- npm, yarn or bun
# Clone the repository
git clone <repository-url>
cd cv-project
# Install dependencies
npm install
# or
bun install# Start development server
npm run dev
# or
bun run dev
# Open http://localhost:4321# Build for production
npm run build
# or
bun run build# Preview production
npm run preview
# or
bun run previewThe resume data is located in src/data/cv-content.json. This file contains:
- Personal profile
- Work experience
- Education
- Skills
- Projects
- Contact
- Colors: Modify in
tailwind.config.ts - Fonts: Configure in
src/layouts/Layout.astro - Animations: Adjust in specific components
- CVContainer: Main CV container
- CustomCursor: Animated custom cursor
- Button: Reusable button component
- Light: Default light theme
- Dark: Automatic dark theme
- Transitions: Smooth transitions between themes
- Framer Motion: Component animations
- GSAP: Complex animations and scroll
- CSS Transitions: Smooth state transitions
- Optimized for paper printing
- Hides unnecessary elements
- Flat layout for printing
- Integrated download button
- Full CV screenshot capture
- Automatic PDF generation
# Install Vercel CLI
npm i -g vercel
# Deploy
vercel --prod# Build and deploy
npm run build
# Upload dist/ folder to Netlify# Build
npm run build
# Configure GitHub Pages for the dist/ folder- Fork the project
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
- Email: ignakruchowski@gmail.com
- LinkedIn: linkedin.com/in/ignacio-kruchowski
- GitHub: github.com/krushodev
β If you like this project, give it a star on GitHub!