Aurijin
A management system for jewelry businesses, with many businesses sharing one platform — tracking the full order lifecycle from intake, through multi-stage production and gram-level gold tracing, to delivery.
- Next.js 16
- React 19
- Turborepo
- NestJS
- Prisma
- PostgreSQL
- Redis
- BullMQ
- Socket.io
- TanStack Query
- Zustand
- Tailwind CSS 4
- AWS S3

Highlights
- Automatically logs gold weight and calculates loss at every production step — metal and gems tracked separately, in Vietnamese jewelry industry units.
- A Kanban-style production workflow (Casting → Stone Setting → Polishing → Plating → Quality check) with batch handover tickets.
- Two workers can never accidentally claim the same task, even when they tap at the same moment.
- Past orders keep their original details even when products are repriced later.
- Detailed role-based permissions; every change leaves a history, and deleted data can be restored.
- Real-time chat and notifications between teams across the production workflow.
About the project
Aurijin is a management system I built for the jewelry industry, from December 2025 to June 2026, as CTO & Lead Engineer — owning the architecture and personally building both the interface and the server side.
The core problem is managing a jewelry order's full lifecycle: from order intake, through multiple production stages (casting, stone setting, polishing, plating, quality check), to delivery — while accurately tracing gold loss at every step.
The system serves many roles within one business, and many businesses on one platform — so permissions, change history, and ticketed handovers between teams were built carefully from day one.
Under the hood
- The frontend is a Turborepo (pnpm) monorepo with 4 Next.js 16 + React 19 apps sharing UI/types packages; TanStack Query + Zustand for state.
- The backend is NestJS + Prisma + PostgreSQL with a multi-tenant architecture — around 30 modules and 45+ data models.
- Redlock (Redis) for distributed locking, preventing race conditions when multiple workers claim the same task.
- Immutable BOM snapshots stored per order, so past orders stay unchanged when products are repriced.
- Granular RBAC with soft-delete and a full audit trail for a multi-role enterprise environment.
- Redis for caching, BullMQ for background jobs, Socket.io for real-time chat/notifications, and images on AWS S3.
Got questions?
I'm always excited to collaborate on innovative and exciting projects!