← back to ~/work

// 2026 — Full-Stack Developer

Lumina

A minimalist luxury e-commerce platform built with Next.js 16 App Router, Prisma ORM, Supabase PostgreSQL, and Midtrans payment gateway.

Next.js 16React 19TypeScriptPrismaSupabaseMidtrans APIZustand
⚡ Midtrans Snap Gateway⚡ 7 Major Currencies⚡ HMAC SHA-512 Webhooks

// 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.