Merged Templates

One Next.js app, many storefronts: each brand lives at /<slug>. The server fetches that brand's data, validates it, and renders whichever template its templateId names — the browser never talks to the backend.

Live mode: brands are served straight from the backend by slug. This index lists nothing by design — the app has no brand-enumeration endpoint.