A modern, scalable e-commerce frontend application built with Next.js (App Router), focused on performance, SEO, and a smooth user experience.
This project represents a real-world frontend architecture, demonstrating how production-grade React / Next.js applications are structured and built.
🔗 https://devita-watchs.vercel.app]
- Framework: Next.js (App Router)
- Language: JavaScript (ES6+)
- UI Library: Material UI (MUI v5)
- State Management: React Context API +
useReducer - Forms & Validation: Formik + Yup
- Animations: Framer Motion
- HTTP Requests: Fetch API
- Notifications: Notistack
- Styling & UX: MUI Theme, Dark Mode
- Code Quality: ESLint
- Image Optimization:
next/image - Version Control: Git & GitHub
- Product listing and product details pages
- Shopping cart with quantity management
- Wishlist (favorites) feature
- Product variations support
- Cart and wishlist persistence using
localStorage
- Global state handled using Context API + useReducer
- Centralized logic for cart, wishlist, and UI state
- Scalable and predictable state updates
- Fully validated forms using Formik & Yup
- Schema-based validation
- Clear error messages and user feedback
- Fully responsive and mobile-first layout
- Dark mode with dynamic theme switching
- Skeleton loaders and loading states
- Modals, dialogs, tooltips, and confirmations
- Smooth UI animations using Framer Motion
- Animated drawers and transitions
- Enhanced user interactions
- Dynamic routing with App Router
- Server-side data fetching
- Dynamic metadata using
generateMetadata - Code splitting and lazy loading using
next/dynamic - Optimized images with Next.js Image
- Custom loading and 404 pages
├── public/ # Static assets
├── src/
│ ├── app/ # Next.js App Router pages & layouts
│ │ ├── page.tsx # Home page
│ │ ├── loading.tsx # Global loading UI
│ │ ├── not-found.tsx # Custom 404 page
│ │ ├── about/ # About page
│ │ ├── shop/ # Shop pages
│ │ ├── contact/ # Contact page
│ │ └── ... # Other routes (products, blogs)
│ ├── components/ # Reusable and feature-based components
│ │ ├── Shop/
│ │ ├── Cart/
│ │ ├── Blogs/
│ │ └── Helpers/
│ ├── context/ # Global state management
│ └── ... # Utilities and helpers
├── .env # Environment variables
├── .eslintrc.json # ESLint configuration
├── jsconfig.json # Path aliases
├── next.config.js # Next.js configuration
└── package.json # Dependencies and scripts
- ESLint rules applied to enforce clean and consistent code
- Clear separation of concerns (UI / logic / state)
- Reusable components and scalable architecture
- Readable, maintainable, and production-ready codebase
bash
git clone https://github.com/e-mustafa/devita-watchs.git
cd devita-watchs
npm install
npm run dev
Open your browser at: http://localhost:3000
- Real-world usage of Next.js App Router
- Scalable frontend architecture
- Solid understanding of React state management
- Clean and user-friendly UI/UX implementation
- Performance, SEO, and accessibility awareness
- Production-ready development practices
Mustafa Abutabl
Frontend Developer (React / Next.js)
- GitHub: https://github.com/e-mustafa
- Email: eng.mustafa@hotmail.com
- Portfolio: https://e-mustafa.github.io/portfolio/
⭐ If you find this project useful or interesting, feel free to star the repository!