🌟 Portfolio Website

Kuldeepsinh Jadeja - Full-Stack Software Engineer

Next.js React Sass License

A modern, responsive portfolio with integrated blog and project showcase

πŸš€ Live Demo β€’ πŸ“– Documentation β€’ πŸ› Report Bug β€’ ✨ Request Feature


πŸ“‹ Table of Contents


🎯 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

  • βœ… Responsive Design - Pixel-perfect on all devices
  • βœ… Dark/Light Mode - Persistent theme with localStorage
  • βœ… Smooth Animations - Lenis smooth scrolling
  • βœ… macOS-Style Dock - Animated navigation with active state
  • βœ… Modern UI/UX - Clean, intuitive interface
  • βœ… SCSS Modules - Component-scoped styling

πŸš€ Functionality

  • βœ… Medium Integration - Auto-fetch articles via RSS
  • βœ… Dynamic Routing - SSR for blog posts and docs
  • βœ… README Viewer - Interactive project documentation
  • βœ… Google Analytics - Built-in tracking
  • βœ… SEO Optimized - Meta tags and structured data
  • βœ… Image Optimization - Next.js Image component

πŸ“„ Page Overview

PageRouteDescription
Home/Main portfolio with skills, experience, and projects
Medium Blog/mediumGrid view of all Medium articles
Blog Post/medium/[slug]Individual article with markdown rendering
Readme Hub/readmeInteractive checklist and project documentation index
Project Readme/readme/[slug]Detailed project documentation viewer

πŸ› οΈ Tech Stack

TechnologyPurposeVersionFeatures Used
Next.jsFramework16.0.3SSR, Dynamic Routing, Image Optimization, Script Component
ReactUI Library19.2.0Hooks, Context API, Components
SassStyling1.94.1Modules, Variables, Mixins
LucideIcons0.554.0React Icons
LenisScroll1.3.15Smooth Scrolling
React MarkdownParser10.1.0Markdown 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

  1. Clone the repository

    git clone https://github.com/kuldeep-jadeja/portfolio_website.git
    cd portfolio_website
    
  2. Install dependencies

    npm install
    # or
    yarn install
    
  3. Set up environment variables (Optional)

    Create a .env.local file in the root directory:

    # Google Analytics (if you want to change the tracking ID)
    NEXT_PUBLIC_GA_ID=G-H9RNHSBV4Y
    
  4. Run the development server

    npm run dev
    # or
    yarn dev
    
  5. Open your browser

    Navigate to http://localhost:3000 πŸŽ‰

Available Scripts

CommandDescription
npm run devStart development server at localhost:3000
npm run buildBuild for production
npm run startStart 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.js for 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 grid
  • pages/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 hub
  • pages/readme/[slug].js - README viewer
  • pages/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

  1. 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
  2. Theme Colors

    • Modify styles/globals.scss
    • Update CSS variables for [data-theme="dark"] and [data-theme="light"]
  3. Profile Image

    • Replace public/images/test(1).png with your photo
    • Update company logos in public/images/
  4. Google Analytics

    • Update tracking ID in pages/_app.js
    • Or set NEXT_PUBLIC_GA_ID in .env.local

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:

  1. Update the RSS feed URL in the Medium page components
  2. Your Medium username: https://medium.com/feed/@your-username

🚒 Deployment

Deploy on Vercel (Recommended)

Vercel is the easiest way to deploy Next.js applications:

Deploy with Vercel

Steps:

  1. Push to GitHub

    git add .
    git commit -m "Initial commit"
    git push origin main
    
  2. Import to Vercel

    • Visit vercel.com/new
    • Import your GitHub repository
    • Vercel auto-detects Next.js and configures settings
  3. Configure Environment Variables (if needed)

    • Add NEXT_PUBLIC_GA_ID in Vercel dashboard
    • Settings β†’ Environment Variables
  4. Deploy πŸŽ‰

    • Automatic deployments on every push
    • Preview deployments for pull requests
    • Production URL ready in minutes!

Deploy on Netlify

  1. Build Command: npm run build
  2. Publish Directory: .next
  3. Environment Variables: Add any required variables

Deploy on AWS Amplify

  1. Connect your repository
  2. Use the Amplify Console
  3. 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

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. 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

LinkedIn GitHub Email Portfolio

πŸ’Ό Open to opportunities and collaborations!


🌟 Showcase

Featured Projects

This portfolio showcases several key projects:

  1. Award Winning Slider 🎠

    • Modern image carousel with GSAP animations
    • Technologies: HTML5, CSS3, JavaScript, jQuery, Slick Carousel
    • Live Demo | GitHub
  2. Ultimate Self-Hosted File Server πŸ’ͺ🏻

    • Node.js file server with Express and Flmngr
    • Technologies: Node.js, Express.js, Flmngr, Multer
    • Live Demo | GitHub
  3. 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.