Scroll
Index / Work / 09 · Audiophile
2025 HNG Internship 13 · Stage 3a Solo · fullstack Next.js · ConvexTailwindNodemailer

A headphones e-commerce build that started from a Frontend Mentor brief and grew a real backend. Convex stores products and orders, the cart rides in React context + localStorage between sessions, checkout dispatches a Nodemailer receipt — fully responsive across the catalog, product, and cart screens.

Client
HNG Internship 13 · Stage 3a
Role
Solo · fullstack
Duration
06 / 2025
Stack
Next.js · Convex · TypeScript · Tailwind · Nodemailer · react-hot-toast
Audiophile — cover
AUDIOPHILE · 2025 · COVER PLATE
09 / 11
3
categories · 6 products
1
Convex backend
1 email
per completed checkout
Storefront · new product hero
Storefront · new product hero
§ 03 · Chapter

Cart, in three places at once

The cart lives in React context for live updates, mirrors itself into localStorage so a hard refresh never loses an item, and only writes into Convex at checkout. Three storage surfaces, one source of truth — the context is canonical and the other two are mirrors.

§ 04 · Chapter

Receipt on success

A completed checkout fires a Nodemailer email summary with line items and totals. The transactional copy is plain text by design — easier to land in inboxes, harder to break across mail clients.

§99 · Continue

Have a brief?
Let's talk.

© 2026 · Moluno · Powered by sapa
v2.04.026 · 60Hz · 6.5244 N · 3.3792 E