Next Sanity Starter Demo (EN)
Next.js 16 App Router, Sanity Studio v5, Tailwind v4 — as a mono-repo. Production-grade defaults, clear conventions, no bloat. From git clone to first published page.
- Draft Mode & Visual Editing — SanityLive + Presentation only with read token or draft mode. Stega overlays, no extra preview server.
- Revalidate webhook — HMAC, rate limit, payload check. Cache tags per type (
page-{slug},project-{slug},work, …). - SEO —
sitemap.ts,robots.ts, canonical + hreflang viaresolveSanityMetadata, settings fallbacks. - i18n — Field-level (
sanity-plugin-internationalized-array). Default locale unprefixed, others at/{locale}/. Languages from Sanity. - GROQ types —
sanity typegenfor Studio and web. CI:git diff --exit-code. - Security headers — CSP, HSTS preload, Permissions-Policy in
netlify.toml. - Dataset resolver —
@repo/sanity-dataset-resolve, pin beats deployment context. - Cookie banner — Copy/categories/theme from Sanity.
hasConsent(category),open-cookie-preferencesin nav. Settings → Cookie Banner. - Mux video — Studio upload,
<MuxPlayer />+ hls.js loops.
Modular design, scalable and flexible. Four modules, one modules[] stack on home, pages, work, projects — ModulesRenderer, studio order = frontend, Presentation per module.
- Text — i18n title +
richTextMediabody (inline media/carousel). - Media — image, Mux video, or loop. LQIP from Sanity CDN.
- Carousel — images or media slides. Loop, thumbnails, dots, autoplay. Lazy (~15 KB JS).
- Content Refs — linked pages/projects/home, curated or "all". Section 6.
RichText embeds media + carousel only. Text + Content Refs belong in the stack.



