Portfolio project
A multi-tenant storefront platform
This is a Shopify-for-X demo: one backend serves many independent stores, each at their own subdomain. Merchants manage products, orders, and customers from a shared dashboard; shoppers browse and check out on the per-store frontend you're visiting below.
Live stores
5 storesStores are demo tenants spawned by visitors browsing the dashboard. They reset on a 24-hour timer — feel free to click in and shop around. Nothing is real.
acme-corp
acme corp
Visit acme-corp.shop.demetrioq.com →
acme
acme corp
Visit acme.shop.demetrioq.com →
demo-0a0e4a58
Demo · 22h 6mDemo Store 0A0E4A58
Visit demo-0a0e4a58.shop.demetrioq.com →
demo-785a54b1
Demo · 22h 6mDemo Store 785A54B1
Visit demo-785a54b1.shop.demetrioq.com →
platform
Platform
Visit platform.shop.demetrioq.com →
Tech stack
- Backend
- .NET 9, ASP.NET Core, Clean Architecture, MediatR, EF Core + Postgres
- Storefront
- Next.js 16 App Router, TypeScript, Tailwind v4, SSR
- Auth
- JWT (merchant + customer) with refresh-cookie rotation
- Payments
- Stripe hosted checkout + simulation provider
- Routing
- Subdomain-based tenant resolution via Next.js proxy middleware
- Hosting
- Oracle Cloud ARM VM · Caddy · Docker