Responsive E-commerce website
Mayra Jewelry
Date
Sep 27, 2025 — May 08, 2026
Role
Full-stack Engineer
Project type
Responsive E-commerce website
Project Code
Project URL
Getting started
Facebook OAuth
Product Zoom
Email verification and order status update
UI Renovation
Admin CMS - User
Admin CMS - Jewellery
Mayra Jewelry is a full-stack, responsive e-commerce experience built for a boutique Vietnamese jewellery brand — a polished customer-facing storefront paired with a self-serve admin CMS, designed to feel as crafted as the pieces it sells.
Architecturally, the project is split into two independently deployable apps that talk to each other over a versioned REST API: a Next.js frontend hosted on Vercel, and a Docker-wrapped Go backend hosted on Render. The frontend owns rendering, localisation and session; the backend owns data, payments, media and admin authentication.
This was also my first time shipping anything to Render — getting comfortable with its build pipeline, environment model and container-based service runtime alongside the Vercel side I already knew.
What I learned from this project is:
- How to author per-page metadata (title, description, OpenGraph, Twitter cards) so Google, Facebook and other crawlers index each route correctly.
- How to set up i18n with next-intl for full Vietnamese and English localisation, with locale-aware routing and middleware-driven language detection.
- How to use GORM as an object-relational mapper in Go, modelling jewellery, orders, sessions and admin users against a Postgres database.
- How to integrate VietQR for native Vietnamese bank-transfer payments, generating dynamic QR codes that customers scan inside any local banking app.
- How to add two-factor authentication for admin users using TOTP, with secure recovery and rate-limited login flows.
- How to handle image uploads to S3 directly from a Go backend, with signed URLs and access-controlled buckets feeding the storefront and CMS.
- How to build a headless admin CMS from scratch — content authoring, media management and order workflows — instead of bolting onto an off-the-shelf platform.
- How to combine NextAuth v5 on the frontend with a custom JWT-based session layer on the Go backend, so a single sign-in flow grants the right scopes to both apps.
Gallery





































