ZestyShop
All ProductsPhysicalDigitalCategories
Account
All articles

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.

graph TB subgraph Frontend["Frontend — Next.js 16 App Router"] RSC["Server Components<br/>Homepage, Products,<br/>Admin, Merchant"] CC["Client Components<br/>Cart, Checkout,<br/>Account, Pricing"] ZS["Zustand (Cart)<br/>localStorage"] SWR["SWR (Orders,<br/>Wishlist)"] end subgraph Auth["Authentication — Better Auth"] EP["Email/Password"] GO["Google OAuth"] BA["Better Auth Server<br/>Session Mgmt"] end subgraph Payments["Payments"] ST["Stripe<br/>Subscriptions"] DP["DodoPayments<br/>Checkout"] end subgraph AWS["AWS Services"] RDS["Aurora PostgreSQL<br/>Products, Orders,<br/>Users, Reviews"] S3["S3 — File Uploads<br/>Presigned POST"] SES["SES — Transactional<br/>Emails"] STS["STS — IAM Auth<br/>Vercel OIDC"] end subgraph External["External"] GH["GitHub"] VC["Vercel — Hosting"] end Browser --> VC VC --> Frontend VC --> Auth VC --> Payments VC --> AWS Frontend --> BA Frontend --> ZS Frontend --> SWR BA --> RDS BA --> ST BA --> DP BA --> SES Auth --> RDS Auth --> SES Payments --> ST Payments --> DP AWS --> RDS AWS --> S3 AWS --> SES STS --> RDS GH --> VC

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.

Read next

ArchitectureFrom Storefront to Operations
ZestyShop

Bold products, playful vibes. Find your next favorite thing — physical or digital.

Shop

  • All Products
  • Physical Products
  • Digital Products
  • Categories

Account

  • My Account

Help

  • FAQ
  • Shipping Info
  • Returns
  • Contact Us
  • How We Built This
  • From Storefront to Operations

© 2026 ZestyShop. All rights reserved.

PrivacyTerms