Lumina
A minimalist luxury e-commerce platform built with Next.js 16 App Router, Prisma ORM, Supabase PostgreSQL, and Midtrans payment gateway.
// 01 — problem
Modern luxury e-commerce applications require highly responsive user experiences, strict server-side pricing validation to prevent checkout tampering, and payment integration supporting local payment gateways and multi-currency conversions.
// 02 — solution
Built Lumina, a minimalist luxury e-commerce platform using Next.js 16 App Router and React 19 Server Components. Integrated Midtrans Snap payment gateway with automated HMAC SHA-512 webhook signature verification (/api/midtrans-webhook), a multi-currency conversion engine supporting 7 major currencies, persistent Zustand cart state, and a full store admin suite.
// 03 — architecture & decisions
- Calculated order item totals strictly on the server from database prices during checkout to eliminate client-side price modification vulnerabilities.
- Implemented HMAC SHA-512 signature validation on Midtrans webhooks to securely handle automated payment status updates (PENDING to PAID/CANCELLED).
- Leveraged Prisma ORM with Supabase PostgreSQL connection pooling for fast relational data queries, coupled with HTTP-Only JWT session cookies for authentication.
- Designed a dynamic multi-currency engine supporting USD, IDR, EUR, GBP, SGD, AUD, and JPY with localized number formatting.