● ONLINE // SYCHROV.CZ // DEV PORTFOLIO
DRAGOCZ /
[ CASE // 02 // E-COMMERCE // SALON PRODUKTY + SERVIS ]

Sarah-Hair.cz

Next.js e-shop pro kadeřnický salon — produkty, booking, administrace

// CLIENT
Sarah Hair Salon, Liberec
// ROLE
DEVELOPER // FULLSTACK, ARCHITEKT, DEPLOY
// PERIOD
2024 → 2025
// STATUS
ACTIVE
NEXT.JS 16REACT 19TYPESCRIPTMEDUSA.JS V2POSTGRESQLSTRIPETAILWIND 4SYSTEMD

Problém

Kadeřnický salon v Liberci chtěl kromě webu s informacemi o službách také:

  • prodávat profesionální vlasovou kosmetiku online,
  • umožnit zákazníkům registraci a správu objednávek,
  • mít spolehlivý backend pro správu katalogu, objednávek a zákazníků,
  • a zachovat přitom jednoduchost pro majitelku.

Původní web byl statický Astro web s PHP formulářem — bez možnosti prodávat.

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)        │
│  PLATBA → Stripe (připravený) + manual provider                         │
│  BRAND  → Světlý layout, indigo akcent #4d4dff, CZ/EN                  │
│  HOST   → VPS, systemd (web:3500 + medusa:3501)                       │
└──────────────────────────────────────────────────────────────────────────┘

Architektura

Stejný model jako OpravnaBicyklu — osvědčená architektura, rozdíl v brandu a katalogu:

┌────────────────────────────────────────────────────┐
│  apps/web  → Next.js 16                           │
│  – Homepage + marketing: služby, ceník, galerie   │
│  – E-shop route group: /shop, /cart, /checkout   │
│  – Klientská zóna: /account, /orders, /addresses  │
│  – CZ/EN přepínač, Sticky CTA s telefonem         │
└────────────┬───────────────────────────────────────┘
             │ proxy /api/medusa/*
┌────────────▼───────────────────────────────────────┐
│  apps/medusa → Medusa.js v2                       │
│  – Region ČR v CZK, doprava Zásilkovna            │
│  – Seed: salónní katalog produktů                 │
│  – Admin UI na /app                               │
└────────────────────────────────────────────────────┘

Řešení

  • Produkty + služby — katalog salónní kosmetiky přes Medusa backend, majitelka spravuje přes admin panel.
  • CZ/EN — dvojjazyčný web i e-shop. Copy ve slovnících, runtime bez i18n knihovny.
  • Rezervace — sticky CTA lišta s telefonem, formulář posílá booking intent emailem. Žádný kalendář, žádný chaos.
  • Admin UI — přístupný na localhost:3501/app, majitelka vidí objednávky, produkty, zákazníky a stav skladu.
  • Sticky CTA — na každé stránce viditelné tlačítko “Objednat se”, primárně tel: link, sekundárně formulář.

Výsledky

  • Živý e-shop s profesionální kosmetikou — košík, checkout, klientská zóna
  • +180 % organických návštěv z Google oproti původnímu statickému webu
  • 1 monorepo, 2 systemd služby, 0 SaaS kromě Stripe
  • Majitelka spravuje katalog i objednávky sama

Ponaučení

  • Stejná architektura, jiný brand — Opravna a Sarah sdílejí 80 % kódu, liší se vzhled, katalog a akcent. Frameworková šablona se vyplatila.
  • Systemd vs PM2 — obě fungují, systemd je čistší pro menší projekty, PM2 pro projekty s vlastním clusterem.
  • Indigo akcent — pro kosmetický brand funguje líp než oranžová. Barva dělá víc, než se zdá.
// NEXT_CASE
CoreSynth.io
Hostingová platforma s integrovaným AI agentem — closed beta