TechStore: E-Commerce with Next.js 15
April 15, 2026
Building a Modern E-Commerce Store
TechStore is a technology online store built with Next.js 15+ and App Router. It simulates a real shopping experience with product catalog, search, filters, shopping cart, and a design inspired by Microsoft Store / Fluent Design.
The Challenge
Create a complete e-commerce experience with modern web technologies, focusing on performance, user experience, and a design that feels familiar to Microsoft Store users.
Inspiration: Microsoft Store
The design philosophy comes directly from:
Microsoft Store with its Fluent Design, soft borders, subtle shadows and the accent color #0078D4 (Microsoft blue)
I wanted to combine that visual elegance with modern React patterns and state management.
Tech Stack
The technologies I chose were:
- Next.js 15: Framework principal with App Router and React Server Components
- TypeScript: Static typing for better developer experience and code quality
- Tailwind CSS v4: Styles and responsive design with Tailwind CSS v4
- Zustand: Global state management for the shopping cart
- Vercel: Deployment and hosting with edge network
Implemented Features
✓ Product Catalog
Product listing with pagination, search by keywords (name, description, tags) and brand filters.
✓ Shopping Cart
Add/remove products, totals calculation and persistence with localStorage.
✓ Search System
Keyword-based search with friendly URLs: /?k=laptop&page=2#products
✓ Brand Pages
Dedicated pages per brand with unique gradient colors and filtered product catalogs.
✓ Responsive Design
Fully responsive layout with mobile menu, animated dropdowns and search dialog with backdrop blur.
The Code
The project structure follows Next.js App Router conventions:
app/
├── page.tsx # Homepage
├── cart/
│ └── page.tsx # Cart page
├── product/
│ └── [slug]/
│ └── page.tsx # Product detail
└── brands/
└── [slug]/
└── page.tsx # Products by brand
components/
├── layout/ # Header, Footer, Search
├── product/ # ProductCard, ProductGrid
└── ui/ # Reusable components
lib/
├── services/ # Mock data & functions
├── store/ # Cart state (Zustand)
└── types/ # TypeScript interfaces The project uses mock product data (no real database) and images from Unsplash and Apple.com. The cart is persisted in localStorage.
Lessons Learned
- App Router simplifies routing: Next.js 15 App Router with Server Components makes it easy to build SEO-friendly pages with dynamic metadata.
- Zustand is lightweight and powerful: State management with Zustand is much simpler than Redux for simple use cases like a shopping cart.
- Tailwind v4 is a game changer: The new version of Tailwind CSS brings improved performance and better DX with CSS-first configuration.
- Mock data is great for prototyping: Using mock data allows rapid iteration without setting up a backend infrastructure.
Conclusion
TechStore demonstrates how Next.js 15, TypeScript and Tailwind CSS can be combined to create a modern e-commerce experience. The project is available as a demo and can serve as a starting point for real stores.
Do you have questions about the project? Want to contribute? Write to me!