All projects

BookNest

Fullstack online bookstore with a storefront, an admin panel, and a complete Stripe payment lifecycle in test mode, covered by automated tests and a CI/CD pipeline.

BookNest — interface preview

About the project

BookNest is a production-like online bookstore built on Next.js, with a storefront, an admin panel, and user/admin roles via Auth.js. It is built around a complete Stripe payment lifecycle in test mode: Checkout, payment retry, admin refunds, and signature-verified idempotent webhooks. Customers can see their orders and retry a failed payment, while admins manage books and orders and issue refunds. Data lives in Supabase PostgreSQL and Storage, and the light/dark UI is built on design tokens with a reusable component kit. Claude Code was part of the development workflow for scaffolding and refactoring.

The problem

BookNest was built as a personal project to implement a production-like payment flow end to end, not just the happy path: failed payments that need a retry, admin refunds, and webhook events that can arrive more than once or race with the checkout flow.

The solution

Stripe webhooks are signature-verified and idempotent, with race-condition protection, alongside Checkout, payment retry, and admin refunds. 24 unit and component tests (Vitest, React Testing Library) run in a GitHub Actions pipeline, and Vercel Deployment Checks block production releases until the tests pass.

Tech stack

  • Next.js 16
  • React 19
  • TypeScript
  • Prisma 7
  • PostgreSQL
  • Supabase
  • Auth.js
  • Stripe
  • TanStack Query
  • Redux Toolkit
  • React Hook Form
  • Zod
  • Radix UI
  • CSS Modules
  • Vitest
  • React Testing Library
  • GitHub Actions
  • Vercel
  • Docker Compose

Screenshots

Feedback

Tried this project or read the case study? I'd love to hear your thoughts.