Showcasing technical expertise through cutting-edge web technologies and optimized user experience
- π― Overview
- β¨ Key Features
- π οΈ Tech Stack
- π Quick Start
- π Project Structure
- π¨ Design Philosophy
- π± Responsive Design
- β‘ Performance
- π§ Development
- π Deployment
- π€ Contributing
- π Contact
This portfolio represents the intersection of modern web development and exceptional user experience. Built with performance-first principles, it showcases my journey as a Full-Stack Developer through an interactive, visually stunning interface that performs flawlessly across all devices.
- β‘ Lightning Fast: Optimized for 95+ Lighthouse performance scores
- π¨ Visually Stunning: Modern animations and micro-interactions
- π± Mobile-First: Seamless experience across all device sizes
- βΏ Accessible: Built with accessibility best practices
- π§ Production-Ready: Clean, maintainable, and scalable code
- Smooth Animations: Framer Motion powered transitions and micro-interactions
- Dark/Light Mode: Seamless theme switching with system preference detection
- Magnetic Elements: Interactive hover effects and magnetic buttons
- Parallax Scrolling: Engaging scroll-based animations
- Loading Experience: Beautiful animated loading screen
- Mobile-First Design: Optimized for touch interactions
- Adaptive Layouts: Fluid grid systems that work on any screen size
- Performance Optimized: Reduced motion for better mobile performance
- Touch-Friendly: Optimized button sizes and interaction areas
- π About: Personal introduction with animated elements
- πΌ Skills: Interactive skill showcase with proficiency indicators
- π Projects: Detailed project portfolio with live demos
- π Education: Academic background and achievements
- π Achievements: Certifications and professional recognitions
- π Contact: Multiple contact methods and social links
- Code Splitting: Optimized bundle sizes for faster loading
- Lazy Loading: Components and images load on demand
- Memoization: React.memo and useMemo for optimal re-renders
- Optimized Assets: Compressed images and efficient asset loading
- React 18 - Latest React with concurrent features
- Vite - Lightning-fast build tool and dev server
- JavaScript ES6+ - Modern JavaScript features
- Tailwind CSS - Utility-first CSS framework
- PostCSS - CSS processing and optimization
- Custom CSS - Performance-optimized custom styles
- Framer Motion - Production-ready motion library
- Lottie React - High-quality animations
- GSAP - Professional-grade animations
- Custom Hooks - Reusable animation logic
- ESLint - Code quality and consistency
- Git & GitHub - Version control and collaboration
- VS Code - Development environment
- Chrome DevTools - Performance optimization
- Vercel - Serverless deployment platform
- GitHub Actions - CI/CD pipeline
- Domain Management - Custom domain configuration
Ensure you have the following installed:
- Node.js (v16.0.0 or higher)
- npm or yarn
- Git
# Clone the repository
git clone https://github.com/abhinav-phi/personal-website.git
# Navigate to project directory
cd personal-website
# Install dependencies
npm install
# Start development server
npm run dev# Start dev server (usually runs on http://localhost:5173)
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
# Lint code
npm run lintpersonal-website/
βββ π public/
β βββ π assets/
β β βββ π awards/ # Achievement images
β β βββ π certificates/ # Certification images
β β βββ π logo/ # Brand assets
β β βββ π projects/ # Project screenshots
β β βββ π skills/ # Technology icons
β βββ π index.html
βββ π src/
β βββ π components/
β β βββ π animations/ # Reusable animation components
β β β βββ InteractiveElements.jsx
β β β βββ ScrollAnimations.jsx
β β β βββ TextReveal.jsx
β β βββ π ui/ # UI components
β β β βββ button.jsx
β β β βββ ModernCard.jsx
β β βββ About.jsx # About section
β β βββ Achievements.jsx # Achievements showcase
β β βββ Contact.jsx # Contact information
β β βββ Education.jsx # Educational background
β β βββ Navbar.jsx # Navigation component
β β βββ Projects.jsx # Project portfolio
β β βββ Skills.jsx # Skills showcase
β β βββ SplitText.jsx # Text animation component
β βββ π lib/
β β βββ utils.js # Utility functions
β βββ π lottie/ # Animation files
β βββ App.jsx # Main application component
β βββ index.css # Global styles
β βββ main.jsx # Application entry point
βββ π package.json
βββ π tailwind.config.js
βββ π vite.config.js
βββ π README.md
- Minimalist Design: Clean layouts with purposeful white space
- Gradient Accents: Subtle gradients for visual depth
- Consistent Typography: Poppins font family for readability
- Color Harmony: Carefully selected color palette
- Intuitive Navigation: Clear, accessible navigation patterns
- Progressive Disclosure: Information revealed contextually
- Feedback Systems: Visual feedback for all interactions
- Loading States: Smooth transitions between states
- Mobile Optimization: Reduced animations on mobile devices
- Efficient Rendering: Optimized component re-renders
- Asset Optimization: Compressed and optimized media files
- Code Splitting: Lazy-loaded components and routes
| Device Type | Breakpoint | Optimizations |
|---|---|---|
| π± Mobile | < 768px | Touch-optimized navigation, stacked layouts, reduced animations |
| π Tablet | 768px - 1024px | Grid-based layouts, adjusted spacing, hybrid interactions |
| π» Desktop | > 1024px | Full feature set, advanced hover effects, multi-column layouts |
| π₯οΈ Large Screens | > 1440px | Enhanced spacing, larger typography, expanded layouts |
- Touch Targets: Minimum 44px touch targets
- Reduced Motion: Respects user's motion preferences
- Optimized Images: WebP format with fallbacks
- Efficient Animations: Hardware-accelerated transforms
| Metric | Score | Optimization |
|---|---|---|
| Performance | 95+ | Code splitting, lazy loading, optimized assets |
| Accessibility | 95+ | Semantic HTML, ARIA labels, keyboard navigation |
| Best Practices | 95+ | Modern web standards, security headers |
| SEO | 95+ | Meta tags, structured data, semantic markup |
- React.memo(): Prevents unnecessary re-renders
- useMemo(): Memoizes expensive calculations
- useCallback(): Optimizes event handlers
- Code Splitting: Dynamic imports for route-based splitting
- Image Optimization: WebP format with fallbacks
- Font Loading: Optimized Google Fonts loading
- CSS Optimization: Purged unused Tailwind classes
- Bundle Analysis: Optimized chunk sizes
- Virtual Scrolling: For large lists (if applicable)
- Debounced Inputs: Optimized search and filter inputs
- Intersection Observer: Efficient scroll-based animations
- RequestAnimationFrame: Smooth animation loops
# Development
npm run dev # Start development server with HMR
npm run build # Build for production
npm run preview # Preview production build locally
npm run lint # Run ESLint for code quality
# Deployment
npm run deploy # Deploy to production (if configured)-
Feature Development
git checkout -b feature/new-feature npm run dev # Develop your feature npm run lint git commit -m "feat: add new feature"
-
Testing & Quality Assurance
npm run build # Test production build npm run preview # Test production locally npm run lint # Check code quality
-
Deployment
git push origin feature/new-feature # Create pull request # Merge to main triggers automatic deployment
- ESLint Configuration: Enforces consistent code style
- Prettier Integration: Automatic code formatting
- Component Structure: Consistent component organization
- Performance Monitoring: Regular performance audits
-
Connect Repository
- Link your GitHub repository to Vercel
- Configure build settings:
- Build Command:
npm run build - Output Directory:
dist - Install Command:
npm install
- Build Command:
-
Environment Variables
# Add any required environment variables in Vercel dashboard VITE_API_URL=your_api_url -
Custom Domain (Optional)
- Configure custom domain in Vercel dashboard
- Update DNS settings as required
# Build settings
Build command: npm run build
Publish directory: distnpm install --save-dev gh-pages
# Add deploy script to package.json
npm run deploy- Vercel Analytics: Built-in performance monitoring
- Lighthouse CI: Automated performance testing
- Error Tracking: Production error monitoring
I welcome contributions, suggestions, and feedback! Here's how you can contribute:
-
Fork the Repository
git fork https://github.com/abhinav-phi/personal-website.git
-
Create Feature Branch
git checkout -b feature/amazing-feature
-
Make Changes
- Follow existing code style and conventions
- Add comments for complex logic
- Test your changes thoroughly
-
Commit Changes
git commit -m "feat: add amazing feature" -
Push and Create PR
git push origin feature/amazing-feature # Create pull request with detailed description
- π Bug Fixes: Report and fix bugs
- β¨ Feature Enhancements: Suggest and implement new features
- π Documentation: Improve documentation and README
- π¨ Design Improvements: UI/UX enhancements
- β‘ Performance: Optimization suggestions
- βΏ Accessibility: Accessibility improvements
# Clone your fork
git clone https://github.com/YOUR_USERNAME/personal-website.git
cd personal-website
# Add upstream remote
git remote add upstream https://github.com/abhinav-phi/personal-website.git
# Install dependencies
npm install
# Start development server
npm run devAbhinav β Full-Stack Developer & Tech Enthusiast
- πΌ Open to Internship Opportunities
- π Available for Freelance Projects
- π€ Interested in Collaboration
- π Always Learning New Technologies
- Email: [email protected]
- LinkedIn: linkedin.com/in/abhinavphi
- GitHub: github.com/abhinav-phi
- Portfolio: abhinavphi.vercel.app
Made with β€οΈ and β by Abhinav
Crafted with modern web technologies and a passion for exceptional user experiences
This project is open source and available under the MIT License.
MIT License
Copyright (c) 2024 Abhinav
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
β Star this repository if it helped you!
Thank you for visiting my portfolio repository. Happy coding! π