Peach Cat Club Shop

A real streetwear brand deserves a real e-commerce platform.

RoleFull Stack Developer
TypePersonal Project — Production Business Tool
Year2026
Peach Cat Club Shop - Main View
Peach Cat Club Shop - View 2
Peach Cat Club Shop - View 3
About the Project

Peach Cat Club Shop is a full-stack e-commerce web application I built for my own clothing brand, Peach Cat Club — a streetwear brand rooted in internet culture. The platform handles everything from product discovery to order management and was designed to be production-ready from day one.

My Approach

Built end-to-end as both a real business tool and a technical showcase. The core engineering challenge was architecting a reliable, multi-user system that prevents overselling and cross-account data contamination — while keeping the UX frictionless and the admin panel powerful enough for real inventory management.

Laravel 11PHPReactTypeScriptInertia.jsTailwind CSSPostgreSQL

Pages & Features

01 //

Storefront & Product Browsing

Responsive storefront with category filtering, individual product detail pages showing images, sizes, and live stock availability. Every view is optimized for conversion — from grid layout to the product detail CTA.

02 //

Cart & Checkout System

Add to cart with real-time stock validation that prevents overselling. Full checkout flow includes a shipping form and triggers an automatic order confirmation email via SMTP Gmail after successful submission.

03 //

Order Tracking — My Orders

Customers can view their full order history and track status progression: Pending → Processing → Shipped → Delivered. Each order entry shows items, quantities, and current status in a clean timeline view.

04 //

Admin Dashboard

Full CRUD for products, variants (size/color), images, categories, and homepage banner carousel. Admins can view all customer orders and update their status. All /admin routes are locked behind a custom role-based middleware.

05 //

Session-Isolated Cart System

Per-user localStorage key-binding ensures cart data never bleeds between different logged-in accounts. Switching users immediately resolves to the correct isolated cart state without any manual cleanup.

Tech & Architecture

Backend Layer

Laravel 11 (PHP)

Main server orchestrator handling HTTP routing, ORM operations via Eloquent, business logic, and middleware enforcement. All server-side logic lives in Laravel — no separate REST API needed.

Laravel Breeze

Session-based authentication system. Login, registration, and password flow handled out of the box, with role-based access control layered on top via custom middleware.

Frontend Layer

React + TypeScript via Inertia.js

Inertia.js bridges Laravel and React — delivering a SPA-like experience without a separate API. React handles UI rendering and state; Inertia handles page transitions and prop passing from the server.

Tailwind CSS + Framer Motion

Utility-first styling for rapid, consistent UI. Framer Motion adds polished page transitions and micro-animations throughout the storefront experience.

Database Layer

PostgreSQL

8-table normalized relational schema: users, products, product_variants, product_images, categories, orders, order_items, and banners. Designed to handle concurrent writes without race conditions on stock fields.

Integrations

SMTP Gmail (Transactional Email)

Automated order confirmation emails sent immediately after checkout. Configured via Laravel's mail system using Gmail SMTP — no third-party email SaaS required.

Vite (Asset Bundling)

Fast development HMR and optimized production asset bundling. Works natively with the Laravel + Inertia + React stack.

Design Highlights

01

SPA-like experience via Inertia.js — no page reloads, instant navigation between storefront pages

02

Real-time stock validation on every cart action — prevents overselling at the database level

03

Per-user localStorage key-binding for cart isolation — zero cross-account data bleeding

04

Role-based middleware — all /admin routes enforce strict access separation from the server side

05

Framer Motion animations — polished micro-interactions and page transitions throughout the storefront

Challenges & Solutions

Challenge
Solution

Cart data bleeding between accounts

Implemented per-user localStorage key-binding so each account resolves to its own isolated cart namespace, regardless of login state

Preventing overselling on concurrent adds

Stock validation is enforced at the database query level on every cart mutation, not just at checkout — ensuring inventory accuracy even under concurrent load

Admin access control without overcomplicating auth

Built a lightweight custom EnsureAdminRole middleware that checks a role flag on the user model and redirects non-admins before any controller logic runs

!
Final Reflection

The biggest engineering achievement was building a full production e-commerce system as a solo developer — not a tutorial clone, but a real platform for a real brand. The hardest part was designing the cart isolation system and ensuring stock validation was atomic enough to prevent race conditions between concurrent users.