Sturla is a SvelteKit 5 storefront and editorial site for a fashion brand, deployed to Cloudflare Pages. Commerce runs through Shopify's Storefront API: cart state lives in cookies, checkout redirects to Shopify, and buyer country drives currency and market pricing via Cloudflare geo headers.
Content and merchandising come from DatoCMS over GraphQL. The CMS supplies product presentation, lookbooks, projects (editorial), categories, site copy, global SEO settings, and rich visual assets—including video streamed via HLS. Server modules under src/lib/server/ fetch and normalize this data with TTL caching, schema fallbacks when Dato fields are missing, and graceful degradation when individual queries fail.
The site lives under the (shop) route group. The homepage is an "Everything" page: a generative, Tetris-style masonry grid that shuffles products, lookbook imagery, projects, and call-outs into one immersive index, with layout seeds and LCP hints computed per request. Dedicated routes cover /shop (PLP), product detail pages, /lookbook, /projects, search, bag, and static pages (about, contact, terms). Legacy URLs redirect in hooks.server.ts for SEO continuity.
Shared layout loading hydrates navigation counts, cart quantity, market switcher options, and Dato-driven footer copy. Cart mutations flow through small API routes (/api/cart/add, /api/cart/remove). The UI layer uses Svelte 5 runes, scroll-reveal actions, sticky purchase dialogs, and mobile-first media components tuned for editorial pacing rather than a generic catalog template.
Full production concerns are first-class: baseline security headers, canonical URL rules, sitemap.xml and robots.txt, structured SEO via a shared SeoMeta component, and health/readiness endpoints for deployment checks. A paused/closed mode (PAUSED_MODE / CLOSED_MODE) can gate the full experience behind a coming-soon page while blocking indexing.
Developer ergonomics include an optional in-browser dev panel for grid layout export and auto-scroll QA, guarded debug probe endpoints, Vitest unit tests, and Playwright e2e tests. A separate generative design tool ships only on the tool-site branch—not on main.