← Work

E-commerce / Medusa.js · 2026

NEXUS

Production ecommerce platform built with Next.js and Medusa v2, with real catalog, cart, customer accounts, checkout, inventory, and VPS deployment.

Deployed on Contabo VPS with a separate storefront and API domain. Shares Docker/Nginx deployment patterns with Urban Compact and Performance Street.

My role
Full-stack ecommerce platform build
Type
E-commerce / Medusa.js
Focus
Production Medusa platform

Context

NEXUS is a full-stack ecommerce platform built to demonstrate a real commerce architecture rather than a static storefront. The Next.js storefront talks to a Medusa v2 backend with PostgreSQL and Redis, deployed behind Nginx with HTTPS on a Contabo VPS.

Problem

A credible ecommerce portfolio piece needs a live catalog, cart, customers, checkout, and inventory wired to a real backend, not a design-only storefront.

Approach

Use Medusa v2 for commerce primitives (catalog, pricing, inventory, carts, customers, orders), build the storefront around that API with Next.js and TypeScript, then Dockerize and deploy behind Nginx with separate production domains for the storefront and API.

Challenges

Keeping NEXUS isolated from Urban Compact and Performance Street while still reusing shared Docker/Nginx deployment infrastructure, and verifying the full stack in production while limiting checkout to the payment provider that is actually configured.

Decisions

Separate storefront concerns from commerce/backend concerns. Keep Medusa responsible for catalog, pricing, inventory, carts, customers, and orders. Prefer Docker and Nginx for reproducible VPS deployment. Use Medusa's system/manual payment provider for the current deployment rather than a card processor that is not wired up.

Result

A publicly accessible production ecommerce platform at https://nexus.hassansrour.me/dk with a live Medusa API, real commerce flows, and Contabo VPS deployment.

Implementation

  • Storefront architecture in Next.js and TypeScript against Medusa v2.
  • Medusa-backed catalog with categories, collections, variants, and inventory states (38 active production products).
  • Search, filtering, sorting, pagination, and product detail pages.
  • Real cart, checkout (Medusa system/manual payment provider), customer auth, accounts, addresses, and orders.
  • Cookie-based wishlist behavior and responsive storefront UI with loading, empty, error, and 404 states.
  • Production PostgreSQL and Redis, Dockerized services, Nginx routing, and HTTPS with Let's Encrypt.
  • Separate production domains: nexus.hassansrour.me (storefront) and api-nexus.hassansrour.me (API).
  • End-to-end production verification before declaring the deployment complete.