The Creation of ZestyShop
Published June 2026
ZestyShop started with a simple idea: shopping online should feel fun. Too many stores are bland, slow, and forgettable. We wanted to build something bright, fast, and genuinely useful — a storefront that sells playful physical goods and powerful digital products side by side.
Architecture Overview
ZestyShop is built on a modern Jamstack architecture. Next.js 16 handles both server-rendered pages and API routes, hosted on Vercel. The frontend talks to Better Auth for authentication, Stripe and DodoPayments for payments, and a suite of AWS services for the database, file storage, and email.
Tech Stack
- Next.js 16 — app router, server components, and static generation.
- AWS Aurora PostgreSQL — product catalog, orders, reviews, and content in one place.
- Better Auth — email/password and Google sign-in with Kysely adapter.
- Amazon SES + S3 — transactional emails and direct-upload assets.
- Tailwind CSS v4 — utility-first styling with custom brand tokens.
- Stripe + DodoPayments — dual payment provider support for subscriptions and checkout.
Built for Real Orders
Every feature was designed around the actual purchase flow: browsing products, adding to cart, applying discount codes, checking out with shipping info, and tracking orders from the account dashboard. Reviews and wishlists are tied to real products in the database, not demo data.
Data Flow
Server-rendered pages fetch data directly from PostgreSQL. Interactive components use SWR for data fetching and Zustand for client-side cart state (persisted to localStorage). Auth sessions are managed by Better Auth with 30-day expiry. File uploads go directly from the browser to S3 via presigned POST URLs, keeping the server out of the hot path.
What’s Next
We're expanding the catalog, adding more payment options, and building tools that make managing products and content easier. The goal stays the same: help people find their next favorite thing.