Skip to content
ME
All work
E-commerce2026

Moonlight Store

E-commerce client over a REST API

Role: Frontend

Moonlight Store home page

Overview

A single-page e-commerce application handling the full customer journey: discovering products, adding them to a cart or wishlist, checking out with a shipping address, paying by cash on delivery or through a Stripe checkout session, and reviewing past orders.

Filters live in the query string, so any combination of category, brand and price range is shareable and deep-linkable: selecting a category card anywhere in the app lands on the product grid with that filter already applied.

The motion language is consistent across the app: page transitions, staggered product grids, hover lift on cards, animated menus, and button press feedback. Content animates in on mount rather than on scroll, so everything on the first screen is visible without scrolling first.

The screens

14Product grid with brand, category and price filters held in the URL

Captured from the running system. Records shown are demonstration data.

The interesting part

The token schedules its own logout.

The JWT is decoded on load and an automatic logout is scheduled for the exact expiry time, rather than waiting for the next 401 to fail a request in the user's face. Protected routes redirect guests to sign-in, and every asynchronous action reports through a toast (loading, success and failure), so nothing happens silently.

What it does

  • Catalog with server-side pagination driven by API metadata
  • Live header search with instant result suggestions
  • Category, brand and price filtering, all persisted in the URL
  • Product detail with image carousel, specs table and a similar-items strip
  • Cart with per-item quantity control and live totals
  • Wishlist with quick add-to-cart
  • Checkout with validated Egyptian shipping details
  • Cash on delivery and Stripe checkout sessions
  • Full auth: sign up, sign in, six-digit reset code with paste support
  • Skeleton placeholders on every data-driven page
  • Floating bottom navigation dock on mobile

Built with

Framework
  • React
  • Vite
  • React Router
UI
  • Tailwind CSS
  • Framer Motion
  • react-hot-toast
State
  • Redux Toolkit
  • TanStack Query
  • Context API
Forms
  • Formik
  • Yup
API
  • Axios
  • REST
  • JWT

Next project

PluginZ Corporate Site

The company's 30-page site, shipped solo