Gold & Gems
Jewellery commerce with live bullion pricing
- Role
- Lead Developer
- Client
- Gold & Gems

A commerce platform for a premium jewellery retailer. Prices follow the daily gold and silver rates, stock stays in step between showrooms and the online store, and shoppers can filter by detailed gemstone attributes.
- Built a pricing engine that derives prices from live metal rates, diamond carats, making charges and tax rules.
- Wrote inventory synchronisation services that keep showroom point-of-sale systems and the online store consistent.
- Designed the GraphQL schema and tuned resolvers to keep payloads small on mobile.
- Integrated tokenised payments and role-based access for store administrators and inventory auditors.
- Node.js
- Medusa.js
- Next.js
- GraphQL
- PostgreSQL
Problem and objectives
Jewellery prices change with the metal rate every day, across tens of thousands of customisable products. Many pieces are one of a kind, so the online store and the physical showrooms must never both sell the same item.
Architecture
The backend is Node.js and Medusa.js with GraphQL and REST APIs. A pricing engine calculates each price on request from the live bullion rate, metal weight, gemstone certification fees and making charges.
Inventory reservations run inside database transactions, so a hold placed at checkout or at a showroom till is atomic and a unique piece cannot be reserved twice.
Tradeoffs
Prices are calculated on request instead of stored, which costs a little on every read and saves re-editing every product when the rate moves. The bullion rate itself is cached with a short TTL, so a price can lag the rate provider by that window. The pricing was the easy part. Most of the engineering time went into making reservations correct when showroom staff and an online customer reach for the same piece at once.