A modern, high-performance portfolio website built with Next.js 15, React 19, and Tailwind CSS. Optimized for maximum performance, SEO, and scalability.
- LCP (Largest Contentful Paint): Optimized with lazy loading and intersection observers
- FID (First Input Delay): Reduced with code splitting and optimized animations
- CLS (Cumulative Layout Shift): Prevented with proper image sizing and loading states
- Code Splitting: All heavy components are lazy-loaded
- Tree Shaking: Unused code is automatically removed
- Bundle Analysis: Use
npm run analyzeto analyze bundle size - SVG Optimization: SVGs are optimized and inlined
- Next.js Image Component: Automatic WebP/AVIF conversion
- Lazy Loading: Images load only when in viewport
- Responsive Images: Proper sizing for all devices
- Blur Placeholders: Smooth loading experience
- Intersection Observers: Animations trigger only when visible
- Reduced Motion: Respects user preferences
- Optimized Framer Motion: Reduced animation complexity
- Comprehensive Open Graph tags
- Twitter Card support
- Structured data (JSON-LD)
- Proper meta descriptions and titles
- Dynamic sitemap generation
- Robots.txt configuration
- Canonical URLs
- Semantic HTML structure
- Server-side rendering where possible
- Fast loading times
- Mobile-first responsive design
- Accessibility improvements
- Framework: Next.js 15 with App Router
- UI Library: React 19
- Styling: Tailwind CSS 4
- Animations: Framer Motion
- 3D Graphics: Three.js (optimized)
- Icons: React Icons
- Fonts: Geist (optimized loading)
- Node.js 18+
- npm or yarn
# Clone the repository
git clone https://github.com/yourusername/portfolio.git
cd portfolio
# Install dependencies
npm install
# Run development server
npm run dev# Build the application
npm run build
# Start production server
npm start
# Analyze bundle size
npm run analyzeportfolio/
βββ app/
β βββ components/
β β βββ ui/ # Reusable UI components
β β βββ ErrorBoundary.jsx
β β βββ Hero.jsx
β β βββ Projects.jsx
β β βββ ...
β βββ hooks/ # Custom React hooks
β βββ constants/ # Static data
β βββ lib/ # Utility functions
β βββ layout.js # Root layout with SEO
β βββ page.jsx # Main page with lazy loading
β βββ sitemap.js # Dynamic sitemap
βββ public/ # Static assets
βββ next.config.mjs # Next.js configuration
βββ package.json
- β‘ Lazy Loading: Components load only when needed
- πΌοΈ Image Optimization: Automatic format conversion and sizing
- π¦ Code Splitting: Reduced initial bundle size
- π Animation Optimization: Reduced motion complexity
- π Performance Monitoring: Core Web Vitals tracking
- π Meta Tags: Comprehensive SEO metadata
- π Structured Data: Rich snippets for search engines
- πΊοΈ Sitemap: Dynamic sitemap generation
- π€ Robots.txt: Proper crawling instructions
- π± Mobile Optimization: Mobile-first approach
- βΏ ARIA Labels: Proper accessibility attributes
- π¨ Color Contrast: WCAG compliant color schemes
- β¨οΈ Keyboard Navigation: Full keyboard support
- π Screen Reader: Optimized for screen readers
- π§ Error Boundaries: Graceful error handling
- π TypeScript Ready: Easy TypeScript migration
- οΏ½οΏ½ Testing Ready: Structured for testing
- π Documentation: Comprehensive code comments
# Deploy to Vercel
vercel --prodThe app is optimized for any platform that supports Next.js:
- Netlify
- AWS Amplify
- Railway
- DigitalOcean App Platform
- Performance: 95+
- Accessibility: 100
- Best Practices: 100
- SEO: 100
- LCP: < 2.5s
- FID: < 100ms
- CLS: < 0.1
Create a .env.local file:
NEXT_PUBLIC_SITE_URL=https://your-domain.com
NEXT_PUBLIC_GOOGLE_ANALYTICS_ID=your-ga-id- Update metadata in
app/layout.js - Modify content in
app/constants/Data.js - Customize styling in
app/globals.css - Update images in
public/directory
- Fork the repository
- Create a feature branch
- Make your changes
- Test performance with
npm run analyze - Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js for the amazing framework
- Tailwind CSS for the utility-first CSS
- Framer Motion for animations
- Three.js for 3D graphics
Built with β€οΈ by Mudassir