Lav Sarkari - Portfolio Website
A modern, responsive portfolio website built with Next.js, featuring Three.js animations, GitHub API integration, and a sleek dark/light theme toggle.
π Features
- Hero Section with CSS-animated gradient background
- Dynamic GitHub Integration - Fetches pinned and all repositories live
- Responsive Design - Optimized for all devices
- Dark/Light Mode - Theme toggle with persistent preference
- Smooth Animations - Powered by Framer Motion
- Modern Stack - Next.js 15, TypeScript, Tailwind CSS
- Dynamic Configuration - Update content via single config file
- Security Features - Right-click protection, keyboard shortcuts disabled
- Blur Morphism Navigation - Aesthetic sticky navigation bar
- Custom Cursor - Interactive cursor effects
- Loading Screen - Smooth initial loading experience
- Scroll Progress - Visual scroll indicator
- Back to Top - Floating scroll-to-top button
π οΈ Tech Stack
- Framework: Next.js 15 with App Router
- Styling: Tailwind CSS
- Animations: Framer Motion
- 3D Graphics: Three.js with @react-three/fiber
- APIs: GitHub GraphQL & REST API
- Language: TypeScript
- Icons: Lucide React
π¦ Getting Started
- Clone the repository
git clone https://github.com/LavSarkari/lavsarkari.me.git
cd lavsarkari.me
- Install dependencies
- Set up environment variables
Create a
.env.local file:
GITHUB_TOKEN=your_github_personal_access_token
NEXT_PUBLIC_GITHUB_USERNAME=LavSarkari
- Run the development server
- Open http://localhost:3000 in your browser
π Project Structure
src/
βββ app/
β βββ globals.css
β βββ layout.tsx
β βββ page.tsx
βββ components/
β βββ About.tsx
β βββ AllRepositories.tsx
β βββ Contact.tsx
β βββ Hero.tsx
β βββ PinnedProjects.tsx
β βββ ThemeProvider.tsx
β βββ ThemeToggle.tsx
β βββ ThreeBackground.tsx
βββ lib/
βββ github.ts
π¨ Design Philosophy
Inspired by hamishw.com, this portfolio focuses on:
- Minimalism - Clean, uncluttered design
- Performance - Optimized loading and interactions
- Accessibility - WCAG compliant with proper contrast ratios
- Mobile-First - Responsive design from the ground up
π§ Configuration
GitHub Integration
The site uses both GitHubβs GraphQL and REST APIs:
- GraphQL API: Fetches pinned repositories
- REST API: Fetches all public repositories
Theme System
Custom theme provider with:
- System preference detection
- localStorage persistence
- Smooth transitions
π± Responsive Breakpoints
- Mobile: < 768px
- Tablet: 768px - 1024px
- Desktop: > 1024px
π Deployment
Vercel (Recommended)
- Connect your GitHub repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy with automatic CI/CD
Environment Variables for Production
GITHUB_TOKEN=your_token_here
NEXT_PUBLIC_GITHUB_USERNAME=LavSarkari
π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
π License
This project is open source and available under the MIT License.
π€ Author
Lav Sarkari