A modern, responsive personal portfolio built with React 19, TypeScript, and Vite. Showcases projects, professional experience, and skills with light/dark mode, smooth animations, and a functional contact form.
- 🎯 Frontend: React 19, TypeScript, Vite 7
- 🎨 Styling: Tailwind CSS 4, tw-animate-css
- 🧩 UI Components: Radix UI (dropdown, label, slot)
- 🛤 Routing: React Router 7
- ✨ Animations: GSAP
- 🔧 Utilities: clsx, tailwind-merge, class-variance-authority
- 📧 Contact: EmailJS
- 🔔 Notifications: Sonner
- 🚀 Deployment: Vercel (SPA routing via
vercel.json)
- 📄 Pages: About, Experience, Projects, Contact
- 🌗 Theme Toggle: Light/dark mode with persistent preference
- 📱 Responsive Design: Mobile-optimized layouts with split JS chunks for faster loading
- 🎬 Animations: Smooth page and component transitions via GSAP
- 📬 Contact Form: Integrated with EmailJS for direct inquiries
- ✅ Type-Safe: Full TypeScript coverage with strict checks
- ⚡ Node.js v18+
- 📦 npm (v10+ recommended)
npm installStart the local dev server with HMR:
npm run devOpen http://localhost:5173 to view it in the browser.
Create a production-optimized build:
npm run buildnpm run previewThe project is configured for seamless deployment on Vercel with SPA routing (rewrites all paths to index.html via vercel.json).
Add your deployed portfolio URL here, e.g., https://portfoliov1-gilt-nu.vercel.app