Problem
A hair salon in Liberec wanted to sell professional hair cosmetics online, offer customer accounts and order management, while keeping it simple for the owner.
Stack
┌──────────────────────────────────────────────────────────────────────────┐
│ FRONT → Next.js 16 (App Router, Turbopack, route-groups) │
│ STYLE → Tailwind v4 + framer-motion + lucide-react │
│ BACK → Medusa.js v2 (Postgres, JWT auth, publishable API key) │
│ SHOP → /shop, /cart, /checkout, /account (orders + addresses) │
│ PAYMENT→ Stripe (ready) + manual provider │
│ BRAND → Light layout, indigo accent #4d4dff, CZ/EN │
│ HOST → VPS, systemd (web:3500 + medusa:3501) │
└──────────────────────────────────────────────────────────────────────────┘
Architecture
Same proven model as OpravnaBicyklu — shared architecture, different brand and catalog.
- Marketing homepage with services, pricelist and gallery
- E-shop route group with customer zone
- Medusa backend for catalog and order management
Results
- Live e-shop with professional cosmetics — cart, checkout, customer zone
- +180 % organic Google traffic compared to the previous static website
- 1 monorepo, 2 systemd services, 0 SaaS besides Stripe
- Owner manages the catalog and orders independently