Foundation — Next.js 16, Tailwind v4 & shadcn/ui
ZestyShop is built on Next.js 16 (App Router) using the latest Turbopack bundler, which is now stable and the default. The project uses Tailwind CSS v4 with design tokens defined directly in globals.css via @theme inline — no tailwind.config.js file exists. All semantic color tokens (--background, --foreground, --primary, etc.) are defined there, referencing an OKLCH-based palette built around a playful brand of pink, yellow, teal, coral and lavender.
UI components come from shadcn/ui — an unstyled, composable component system backed by Radix UI primitives. Only the components actually needed were added via the shadcn CLI rather than installing the entire library. Typography uses Plus Jakarta Sans for headings and Inter for body text, loaded via next/font/google and wired into the CSS theme as --font-heading and --font-sans.
The layout is split into reusable server and client components: Navbar, Footer, ProductCard, CartDrawer, CheckoutForm, and more. Cart state is managed client-side with a Zustand store (lib/cart-store.ts), persisted to localStorage so it survives page refreshes without a round-trip to the server.