Responsive E-commerce website

Mayra Jewelry

Date

Sep 27, 2025May 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

Built with

Next.js
Golang
Postgresql
Supabase
Tailwind CSS
Docker Container
Upstash Redis

APIs

Facebook API
R2 Cloudflare
Resend
Tawk.to
VietQR

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

Browse products
Product view
Size measure guides
Order tracking
Admin Signin
Admin Signin - 2FA
Admin Dashboard
Admin - Jewelry
Admin - Jewelry CMS
Admin - Adjust image
Mobile - Home
Mobile - Home bio
Mobile - Nav UI
Mobile - Collections
Mobile - Browse
Mobile - Product
Mobile - QR Payment
Mobile - Admin Signin
Mobile - Admin Nav UI
Mobile - Admin Jewelry CMS
Mobile - Admin Jewelry CMS Preview

Related projects