Skip to content

Repository files navigation

πŸ›οΈ NEXTSHOPP

Next-Generation E-Commerce Platform

🌐 Live Demo: https://nextshopp-azure.vercel.app/

Built solo by Shivam Indore GitHub: https://github.com/indoreshivam2006 Portfolio: https://shivamindoreportfolio.vercel.app

Next.js React TypeScript Tailwind CSS Firebase

A blazing-fast, modern e-commerce platform built with cutting-edge technologies for the 2025 retail landscape.

Live Demo Β· Report Bug Β· Request Feature


-----------------------------------------------------

πŸ“‹ Table of Contents


🎯 Overview

NEXTSHOPP is a production-ready, full-stack e-commerce solution designed for scalability, performance, and exceptional user experience. Built with Next.js 15 and React 19, it leverages the latest web technologies including Server Components, Streaming SSR, and the App Router for optimal performance.

Why NEXTSHOPP?

Challenge Our Solution
Slow page loads Server Components + Streaming SSR
Poor mobile UX Mobile-first responsive design
Complex state management React Context + Local persistence
Limited animations GSAP + Framer Motion integration
Authentication complexity Firebase Auth with Google OAuth

✨ Key Features

πŸ›’ Shopping Experience

  • Smart Product Catalog with advanced filtering & sorting
  • Real-time Cart Management with persistent storage
  • Wishlist Functionality for saved items
  • Product Image Galleries with zoom capabilities
  • Related Products recommendation engine

πŸ” Authentication & Security

  • Firebase Authentication integration
  • Google OAuth single sign-on
  • Email/Password authentication
  • Protected Routes with auth guards
  • Session Management with auto-refresh

πŸ’³ Checkout & Orders

  • Multi-step Checkout flow
  • Multiple Payment Methods support
  • Order History tracking
  • Real-time Order Status updates
  • Address Management system

🎨 UI/UX Excellence

  • 60+ Custom UI Components (shadcn/ui)
  • Smooth Page Transitions with GSAP
  • Interactive Animations with Framer Motion
  • Dark/Light Theme support
  • Responsive Mobile Navigation

Additional Features

  • πŸ“Š Product Statistics Dashboard with Recharts visualizations
  • πŸ—ΊοΈ Interactive Store Locator with Google Maps API
  • πŸ“§ Newsletter Subscription system
  • 🏷️ Category-based Navigation with smart filtering
  • πŸ“± PWA-ready architecture
  • β™Ώ Accessibility-first component design

πŸ› οΈ Tech Stack

Frontend

Technology Purpose
Next.js React Framework with App Router
React UI Library with Server Components
TypeScript Type Safety & Developer Experience
Tailwind Utility-first Styling

UI Components & Animation

Technology Purpose
Radix Accessible UI Primitives
shadcn/ui Pre-built Component Library
GSAP Professional Animations
Framer Motion Declarative Animations

Backend & Infrastructure

Technology Purpose
Firebase Authentication & Database
Vercel Edge Deployment

Form & Data Management

Technology Purpose
React Hook Form Form State Management
Zod Schema Validation
Recharts Data Visualization

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        NEXTSHOPP Architecture                    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚
β”‚  β”‚   Next.js    β”‚    β”‚   React 19   β”‚    β”‚  TypeScript  β”‚       β”‚
β”‚  β”‚  App Router  │◄──►│   Server     │◄──►│    Types     β”‚       β”‚
β”‚  β”‚              β”‚    β”‚  Components  β”‚    β”‚              β”‚       β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚
β”‚         β”‚                                                        β”‚
β”‚         β–Ό                                                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”‚
β”‚  β”‚                   Context Layer                      β”‚        β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚        β”‚
β”‚  β”‚  β”‚  Auth   β”‚  β”‚  Cart   β”‚  β”‚Wishlist β”‚  β”‚ Theme  β”‚  β”‚        β”‚
β”‚  β”‚  β”‚ Context β”‚  β”‚ Context β”‚  β”‚ Context β”‚  β”‚Context β”‚  β”‚        β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚        β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚
β”‚         β”‚                                                        β”‚
β”‚         β–Ό                                                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”‚
β”‚  β”‚                  Firebase Services                   β”‚        β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚        β”‚
β”‚  β”‚  β”‚    Auth     β”‚  β”‚  Firestore  β”‚  β”‚   Storage   β”‚  β”‚        β”‚
β”‚  β”‚  β”‚   Service   β”‚  β”‚  Database   β”‚  β”‚   (CDN)     β”‚  β”‚        β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚        β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚
β”‚                                                                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Getting Started

Prerequisites

  • Node.js 18.17 or later
  • npm, yarn, or pnpm package manager
  • Firebase account (for authentication & database)

Installation

  1. Clone the repository

    git clone https://github.com/indoreshivam2006/NEXTSHOPP.git
    cd NEXTSHOPP
  2. Install dependencies

    npm install --legacy-peer-deps
    # or
    yarn install
    # or
    pnpm install
  3. Configure environment variables

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

    # Firebase Configuration
    NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
    NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain
    NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
    NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket
    NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
    NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id
    
    # Google Maps (Optional)
    NEXT_PUBLIC_GOOGLE_MAPS_API_KEY=your_google_maps_key
  4. Start the development server

    npm run dev
  5. Open your browser

    Navigate to http://localhost:3000

Available Scripts

Command Description
npm run dev Start development server with hot reload
npm run build Create optimized production build
npm run start Start production server
npm run lint Run ESLint for code quality

πŸ“ Project Structure

nextshopp/
β”œβ”€β”€ πŸ“‚ app/                    # Next.js App Router
β”‚   β”œβ”€β”€ πŸ“‚ about/              # About page
β”‚   β”œβ”€β”€ πŸ“‚ auth/               # Authentication pages
β”‚   β”œβ”€β”€ πŸ“‚ cart/               # Shopping cart
β”‚   β”œβ”€β”€ πŸ“‚ categories/         # Product categories
β”‚   β”œβ”€β”€ πŸ“‚ checkout/           # Checkout flow
β”‚   β”œβ”€β”€ πŸ“‚ contact/            # Contact page
β”‚   β”œβ”€β”€ πŸ“‚ orders/             # Order history
β”‚   β”œβ”€β”€ πŸ“‚ products/           # Product pages
β”‚   β”œβ”€β”€ πŸ“‚ profile/            # User profile
β”‚   β”œβ”€β”€ πŸ“‚ wishlist/           # Wishlist page
β”‚   β”œβ”€β”€ πŸ“„ layout.tsx          # Root layout
β”‚   β”œβ”€β”€ πŸ“„ page.tsx            # Homepage
β”‚   └── πŸ“„ globals.css         # Global styles
β”‚
β”œβ”€β”€ πŸ“‚ components/             # React Components
β”‚   β”œβ”€β”€ πŸ“‚ ui/                 # 60+ shadcn/ui components
β”‚   β”œβ”€β”€ πŸ“„ header.tsx          # Site header
β”‚   β”œβ”€β”€ πŸ“„ footer.tsx          # Site footer
β”‚   β”œβ”€β”€ πŸ“„ hero.tsx            # Hero section
β”‚   β”œβ”€β”€ πŸ“„ product-card.tsx    # Product card
β”‚   β”œβ”€β”€ πŸ“„ product-grid.tsx    # Product grid
β”‚   └── ...                    # Other components
β”‚
β”œβ”€β”€ πŸ“‚ context/                # React Context Providers
β”‚   β”œβ”€β”€ πŸ“„ auth-context.tsx    # Authentication state
β”‚   β”œβ”€β”€ πŸ“„ cart-context.tsx    # Cart management
β”‚   └── πŸ“„ wishlist-context.tsx# Wishlist management
β”‚
β”œβ”€β”€ πŸ“‚ hooks/                  # Custom React Hooks
β”‚   β”œβ”€β”€ πŸ“„ use-mobile.tsx      # Mobile detection
β”‚   β”œβ”€β”€ πŸ“„ use-toast.ts        # Toast notifications
β”‚   └── πŸ“„ useSmoothScroll.ts  # Smooth scrolling
β”‚
β”œβ”€β”€ πŸ“‚ lib/                    # Utilities & Services
β”‚   β”œβ”€β”€ πŸ“‚ firebase/           # Firebase configuration
β”‚   β”œβ”€β”€ πŸ“„ utils.ts            # Utility functions
β”‚   └── πŸ“„ animations.ts       # Animation helpers
β”‚
β”œβ”€β”€ πŸ“‚ public/                 # Static assets
β”‚   └── πŸ“„ *.avif              # Optimized images
β”‚
β”œβ”€β”€ πŸ“„ tailwind.config.ts      # Tailwind configuration
β”œβ”€β”€ πŸ“„ next.config.mjs         # Next.js configuration
β”œβ”€β”€ πŸ“„ components.json         # shadcn/ui configuration
└── πŸ“„ package.json            # Dependencies

πŸ“Έ Screenshots

Homepage

Modern hero section with animated elements and featured products

Product Catalog

Advanced filtering, sorting, and responsive grid layout

Shopping Cart

Real-time cart management with quantity controls

Checkout Flow

Streamlined multi-step checkout process


⚑ Performance

NEXTSHOPP is optimized for exceptional performance:

Metric Score
First Contentful Paint < 1.2s
Largest Contentful Paint < 2.5s
Time to Interactive < 3.5s
Cumulative Layout Shift < 0.1

Optimization Techniques

  • βœ… Server Components - Reduced client-side JavaScript
  • βœ… Image Optimization - AVIF format with lazy loading
  • βœ… Code Splitting - Automatic route-based splitting
  • βœ… Edge Caching - Vercel Edge Network integration
  • βœ… Font Optimization - Next.js font optimization

πŸ‘¨β€πŸ’» Built By

Shivam Indore β€” Solo Developer


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Built with ❀️ by Shivam Indore using Next.js 15 & React 19

Stars Forks

⬆ Back to Top

About

A blazing-fast, modern e-commerce platform built with cutting-edge technologies for the 2025 retail landscape.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages