π Portfolio Website
Kuldeepsinh Jadeja - Full-Stack Software Engineer
A modern, responsive portfolio with integrated blog and project showcase
π Live Demo β’ π Documentation β’ π Report Bug β’ β¨ Request Feature
π Table of Contents
- About
- Key Highlights
- Features
- Tech Stack
- Getting Started
- Project Structure
- Key Features Deep Dive
- Customization
- Deployment
- Performance & SEO
- Contact
π― About
A comprehensive personal portfolio built with Next.js 16 and React 19, showcasing my journey as a full-stack software engineer. This isn't just a simple portfolioβit's a feature-rich platform that integrates:
"Passionate about Tech, turned me into Software engineer β€οΈ"
"I love building things and helping people."
Professional Journey:
- π Current: Full-Stack MERN Developer at Redlio Designs (July 2024 - Present)
- πΌ Previous: Adobe Magento2 Frontend Developer at Salecto (June 2022 - June 2024)
- π Specialization: React, Next.js, Node.js, MongoDB, Magento2, and modern web technologies
β¨ Key Highlights
π¨ Medium Blog Integration - Automatically fetches and displays your Medium articles with rich previews
π Interactive Project Docs - Dynamic README viewer for showcasing project documentation
π macOS-Style Dock Navigation - Elegant, animated navigation inspired by macOS
π Smart Theme System - Persistent dark/light mode with system preference detection
π Lenis Smooth Scroll - Buttery-smooth scrolling experience throughout
π± Fully Responsive - Pixel-perfect on all devices from mobile to 4K displays
β‘ Google Analytics - Built-in analytics integration for tracking visitor insights
β‘ Features
π¨ Design & UX
|
π Functionality
|
π Page Overview
| Page | Route | Description |
|---|---|---|
| Home | / | Main portfolio with skills, experience, and projects |
| Medium Blog | /medium | Grid view of all Medium articles |
| Blog Post | /medium/[slug] | Individual article with markdown rendering |
| Readme Hub | /readme | Interactive checklist and project documentation index |
| Project Readme | /readme/[slug] | Detailed project documentation viewer |
π οΈ Tech Stack
| Technology | Purpose | Version | Features Used |
|---|---|---|---|
| Framework | 16.0.3 | SSR, Dynamic Routing, Image Optimization, Script Component | |
| UI Library | 19.2.0 | Hooks, Context API, Components | |
| Styling | 1.94.1 | Modules, Variables, Mixins | |
| Icons | 0.554.0 | React Icons | |
| Scroll | 1.3.15 | Smooth Scrolling | |
| Parser | 10.1.0 | Markdown Rendering, GFM, Raw HTML |
Additional Dependencies
- github-markdown-css (^5.8.1) - Markdown styling for README viewer
- rehype-raw (^7.0.0) - HTML support in markdown
- remark-gfm (^4.0.1) - GitHub Flavored Markdown support
π Getting Started
Prerequisites
Ensure you have the following installed:
- Node.js (v18 or higher) - Download
- npm (comes with Node.js) or yarn package manager
Installation
-
Clone the repository
git clone https://github.com/kuldeep-jadeja/portfolio_website.git cd portfolio_website -
Install dependencies
npm install # or yarn install -
Set up environment variables (Optional)
Create a
.env.localfile in the root directory:# Google Analytics (if you want to change the tracking ID) NEXT_PUBLIC_GA_ID=G-H9RNHSBV4Y -
Run the development server
npm run dev # or yarn dev -
Open your browser
Navigate to http://localhost:3000 π
Available Scripts
| Command | Description |
|---|---|
npm run dev | Start development server at localhost:3000 |
npm run build | Build for production |
npm run start | Start production server |
π Project Structure
portfolio_website/
β
βββ π components/ # Reusable React components
β βββ Dock/ # macOS-style animated dock navigation
β β βββ Dock.js # Main dock component with active state
β β βββ Dock.module.scss # Dock styling
β βββ MainWrapper/ # Layout wrapper with theme toggle
β βββ MainWrapper.js # Wrapper component with Dock integration
β βββ MainWrapper.module.scss
β
βββ π contexts/ # React Context providers
β βββ ThemeContext.js # Theme management (dark/light with localStorage)
β
βββ π pages/ # Next.js pages & routing
β βββ _app.js # Custom App (Lenis, Google Analytics, Theme)
β βββ _document.js # Custom Document
β βββ index.js # Home page (portfolio, skills, experience)
β βββ api/ # API routes
β β βββ readme.js # Fetch README content from GitHub
β βββ medium/ # Medium blog integration
β β βββ index.js # Articles listing page
β β βββ [slug].js # Dynamic article detail page (SSR)
β βββ readme/ # Project documentation
β βββ index.js # README hub with project index
β βββ [slug].js # Dynamic README viewer with markdown
β
βββ π public/ # Static assets (served from root)
β βββ fonts/ # Custom fonts
β βββ images/ # Images (profile, project screenshots, GIFs)
β
βββ π styles/ # Global & module styles
β βββ globals.scss # Global SCSS styles with theme variables
β βββ github-markdown.css # GitHub markdown styling
β βββ Home.module.scss # Home page styles
β βββ MediumPageList.module.scss # Medium articles grid
β βββ MediumPageDetails.module.scss # Article detail page
β βββ readme.module.scss # README hub styles
β βββ readmeDetail.module.scss # README viewer styles
β
βββ π next.config.mjs # Next.js config (image domains, React strict mode)
βββ π jsconfig.json # JavaScript configuration with path aliases
βββ π package.json # Project dependencies and scripts
βββ π README.md # This file!
Key Architecture Decisions
- SCSS Modules: Component-scoped styling to prevent style conflicts
- Context API: Global theme state management without external libraries
- Dynamic Routes: SSR for blog posts and documentation for better SEO
- Lenis Integration: Smooth scrolling configured in
_app.jsfor global effect - Image Optimization: Next.js Image component with configured domains
πͺπ» Key Features Deep Dive
1. π macOS-Style Dock Navigation
An elegant, animated navigation system inspired by macOS:
- Active State Tracking: Automatically highlights current page
- Smooth Transitions: Animated limelight effect follows active item
- Route Matching: Smart detection of current route including nested paths
- External Links: Handles both internal routing and external links
- Icons: Lucide React icons for clean, scalable graphics
Implementation: components/Dock/Dock.js
2. π Persistent Theme System
Smart theme management with user preference persistence:
- Dark/Light Mode: Toggle between themes with smooth transitions
- LocalStorage: Saves user preference across sessions
- System Detection: Respects OS color scheme preference on first visit
- Global State: Context API for theme state throughout the app
- CSS Variables: Dynamic theme variables in SCSS
Implementation: contexts/ThemeContext.js
3. π Medium Blog Integration
Automatically fetches and displays your Medium articles:
- RSS Feed Parsing: Fetches articles from Medium RSS feed
- Dynamic Routing: SEO-friendly URLs generated from article titles
- Image Extraction: Automatically extracts thumbnail from article content
- Markdown Rendering: Rich content display with GitHub Flavored Markdown
- SSR Support: Server-side rendering for better SEO and performance
Key Files:
pages/medium/index.js- Articles gridpages/medium/[slug].js- Article detail page
4. π Interactive README Viewer
Showcase project documentation with style:
- Dynamic Content: Fetches README from GitHub repositories
- Markdown Support: Full GFM support with syntax highlighting
- GitHub Styling: Uses official GitHub markdown CSS
- Project Index: Interactive checklist and project cards
- Navigation: Easy access to all project documentation
Key Files:
pages/readme/index.js- Project index hubpages/readme/[slug].js- README viewerpages/api/readme.js- API to fetch GitHub content
5. π Lenis Smooth Scrolling
Buttery-smooth scrolling throughout the site:
- Optimized Performance: RAF-based animation
- Customizable Easing: Fine-tuned easing curve
- Mobile Support: Touch-optimized experience
- Global Implementation: Configured in
_app.js
6. π Google Analytics Integration
Built-in analytics for tracking visitor insights:
- Next.js Script Component: Optimized loading strategy
- Custom Tracking ID: Easily configurable
- Privacy-Friendly: Respects user preferences
π¨ Customization
Updating Personal Information
-
Profile & Bio
- Edit
pages/index.js- Update name, tagline, and about section - Work Experience section with company logos and details
- Skills list with your tech stack
- Edit
-
Theme Colors
- Modify
styles/globals.scss - Update CSS variables for
[data-theme="dark"]and[data-theme="light"]
- Modify
-
Profile Image
- Replace
public/images/test(1).pngwith your photo - Update company logos in
public/images/
- Replace
-
Google Analytics
- Update tracking ID in
pages/_app.js - Or set
NEXT_PUBLIC_GA_IDin.env.local
- Update tracking ID in
Customizing the Dock
Edit components/Dock/Dock.js to add/remove navigation items:
const defaultItems = [
{ id: "home", icon: <Home />, label: "Home", href: "/" },
{
id: "github",
icon: <Github />,
label: "Github",
href: "your-github-url",
target: "_blank",
},
// Add more items...
];
Integrating Your Medium Blog
The blog automatically fetches from Medium RSS. To use your own:
- Update the RSS feed URL in the Medium page components
- Your Medium username:
https://medium.com/feed/@your-username
π’ Deployment
Deploy on Vercel (Recommended)
Vercel is the easiest way to deploy Next.js applications:
Steps:
-
Push to GitHub
git add . git commit -m "Initial commit" git push origin main -
Import to Vercel
- Visit vercel.com/new
- Import your GitHub repository
- Vercel auto-detects Next.js and configures settings
-
Configure Environment Variables (if needed)
- Add
NEXT_PUBLIC_GA_IDin Vercel dashboard - Settings β Environment Variables
- Add
-
Deploy π
- Automatic deployments on every push
- Preview deployments for pull requests
- Production URL ready in minutes!
Deploy on Netlify
- Build Command:
npm run build - Publish Directory:
.next - Environment Variables: Add any required variables
Deploy on AWS Amplify
- Connect your repository
- Use the Amplify Console
- Configure build settings:
version: 1 frontend: phases: preBuild: commands: - npm install build: commands: - npm run build artifacts: baseDirectory: .next files: - "**/*" cache: paths: - node_modules/**/*
Self-Hosting
For traditional hosting:
# Build the application
npm run build
# Start the production server
npm start
The app will run on http://localhost:3000. Use a process manager like PM2 for production:
npm install -g pm2
pm2 start npm --name "portfolio" -- start
β‘ Performance & SEO
Performance Optimizations
- β Next.js Image Optimization: Automatic image resizing and WebP conversion
- β Code Splitting: Automatic route-based code splitting
- β Lazy Loading: Images and components load on demand
- β SCSS Modules: No CSS bloat, tree-shaking friendly
- β Lenis Smooth Scroll: GPU-accelerated scrolling
SEO Best Practices
- β Server-Side Rendering: Dynamic pages rendered on server
- β Meta Tags: Proper title and description tags
- β Semantic HTML: Proper heading hierarchy
- β Alt Text: All images have descriptive alt attributes
- β Sitemap Ready: Easy to generate sitemap for search engines
- β Google Analytics: Track and analyze traffic
Lighthouse Scores (Target)
- π’ Performance: 90+
- π’ Accessibility: 95+
- π’ Best Practices: 95+
- π’ SEO: 100
π οΈ Troubleshooting
Common Issues
Issue: Images not loading
- Solution: Ensure image domains are configured in
next.config.mjs
Issue: Theme not persisting
- Solution: Check browser localStorage permissions
Issue: Smooth scroll not working
- Solution: Verify Lenis is properly initialized in
_app.js
Issue: Build fails
- Solution:
rm -rf .next node_modules npm install npm run build
π Learn More
Useful Links
π€ Contributing
Contributions, issues, and feature requests are welcome!
Feel free to check the issues page if you want to contribute.
How to Contribute
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
π License
This project is licensed under the MIT License - see the LICENSE file for details.
You're free to use this portfolio as a template for your own! Just make sure to:
- Update all personal information
- Replace images with your own
- Customize the styling to match your brand
- Give credit if you'd like (appreciated but not required!)
π¨βπ» Contact
Kuldeepsinh Jadeja
Full-Stack Software Engineer | MERN Stack Developer
πΌ Open to opportunities and collaborations!
π Showcase
Featured Projects
This portfolio showcases several key projects:
-
Award Winning Slider π
-
Ultimate Self-Hosted File Server πͺπ»
-
Automated Twitch Clipper β‘
- AI-powered clip detection and social media automation
- Technologies: Next.js, Node.js, MongoDB, Redis, BullMQ, FFmpeg
- Private repository - Coming soon!
π« Built with passion and β€οΈ
If you found this project helpful or inspiring, please consider giving it a β!
Made with β by Kuldeepsinh Jadeja
Β© 2025 Kuldeepsinh Jadeja. All rights reserved.