[{"data":1,"prerenderedAt":383},["ShallowReactive",2],{"sanity-LevEgKvCUg3Ul3GKyhTsfZIfaGswLQ-qsmdjo9-lWe4":3,"sanity-O65ifvqsQEjKXZcqEvwLY2j_XU0C4G08n7HdnHmqZXY":84,"sanity-vJR9yJtjgwEUgHthGxt0o6E2ELYMjQ0wHQzWJgmRKKo":88,"shiki-block-v-0-0-0-0-0-8-0-0-0":382},{"data":4},{"_createdAt":5,"_id":6,"_rev":7,"_system":8,"_type":6,"_updatedAt":11,"acceptAllLink":12,"acceptNecessaryLink":40,"bannerColorSource":50,"bannerDescription":51,"bannerTitle":52,"categories":53,"declineAllLink":54,"managePreferencesLink":63,"modalColorSource":50,"modalTitle":72,"preferencesIconColorSource":50,"provider":73,"savePreferencesLink":74,"thirdPartyEmbedCode":53,"title":83},"2026-07-28T12:06:44Z","cookieSettings","ci4zAxlS92c5lxcUZgKERY",{"base":9},{"id":6,"rev":10},"4areb77bueJ0iGsV9TVGmy","2026-09-03T17:08:03Z",{"_type":13,"newTab":14,"style":15,"title":38,"type":39},"link",false,{"_type":16,"design":17,"icon":30,"iconPosition":34,"stylePreset":35},"link.style",{"_type":18,"colorSource":19,"gradient":20,"hover":25,"shape":29,"style":29},"link.style.design","manual",{"_type":21,"colorSource":19,"direction":22,"gradientType":23,"radialPosition":24},"gradient","to-r","linear","at-center",{"_type":26,"colorSource":27,"gradient":28},"link.style.hover","none",{"_type":21,"colorSource":19,"direction":22,"gradientType":23,"radialPosition":24},"default",{"_type":31,"name":32,"type":33},"icon.config","pi-compass","noicon","start",{"_ref":36,"_type":37},"0a45d6ae-0177-47f2-ab3e-2dd19191fca6","reference","Accept all","button",{"_type":13,"newTab":14,"style":41,"title":49,"type":39},{"_type":16,"design":42,"icon":46,"iconPosition":34,"stylePreset":47},{"_type":18,"colorSource":19,"gradient":43,"hover":44,"shape":29,"style":29},{"_type":21,"colorSource":19,"direction":22,"gradientType":23,"radialPosition":24},{"_type":26,"colorSource":27,"gradient":45},{"_type":21,"colorSource":19,"direction":22,"gradientType":23,"radialPosition":24},{"_type":31,"name":32,"type":33},{"_ref":48,"_type":37},"1b28bc78-22fc-4f39-ab55-441e2a601f6e","Accept necessary","inherit","We use cookies to enhance your browsing experience and analyse our traffic. Please choose your cookie preferences below.","We use cookies",null,{"_type":13,"newTab":14,"style":55,"title":62,"type":39},{"_type":16,"design":56,"icon":60,"iconPosition":34,"stylePreset":61},{"_type":18,"colorSource":19,"gradient":57,"hover":58,"shape":29,"style":29},{"_type":21,"colorSource":19,"direction":22,"gradientType":23,"radialPosition":24},{"_type":26,"colorSource":27,"gradient":59},{"_type":21,"colorSource":19,"direction":22,"gradientType":23,"radialPosition":24},{"_type":31,"name":32,"type":33},{"_ref":48,"_type":37},"Decline all",{"_type":13,"newTab":14,"style":64,"title":71,"type":39},{"_type":16,"design":65,"icon":69,"iconPosition":34,"stylePreset":70},{"_type":18,"colorSource":19,"gradient":66,"hover":67,"shape":29,"style":29},{"_type":21,"colorSource":19,"direction":22,"gradientType":23,"radialPosition":24},{"_type":26,"colorSource":27,"gradient":68},{"_type":21,"colorSource":19,"direction":22,"gradientType":23,"radialPosition":24},{"_type":31,"name":32,"type":33},{"_ref":48,"_type":37},"Manage preferences","Cookie Preferences","custom",{"_type":13,"newTab":14,"style":75,"title":82,"type":39},{"_type":16,"design":76,"icon":80,"iconPosition":34,"stylePreset":81},{"_type":18,"colorSource":19,"gradient":77,"hover":78,"shape":29,"style":29},{"_type":21,"colorSource":19,"direction":22,"gradientType":23,"radialPosition":24},{"_type":26,"colorSource":27,"gradient":79},{"_type":21,"colorSource":19,"direction":22,"gradientType":23,"radialPosition":24},{"_type":31,"name":32,"type":33},{"_ref":36,"_type":37},"Save preferences","Cookie Settings",{"data":85,"sourceMap":-1},{"frontpage":86},{"_ref":87,"_type":37},"e64f0229-95a9-4739-8949-f84915d035d3",{"data":89,"sourceMap":-1},{"_createdAt":90,"_id":87,"_rev":91,"_system":92,"_type":95,"_updatedAt":96,"components":97,"footer":53,"isPublished":103,"layout":29,"navigation":53,"path":370,"routeOptions":371,"seo":376,"showFooter":103,"showNav":103,"sidebar":53,"slug":375,"title":381},"2026-09-10T19:22:31Z","Nc9wn5yi20PiZ3qw3tzg31",{"base":93},{"id":87,"rev":94},"hh1Hx0bZQEVSGeOmDyimNf","page","2026-09-17T15:53:05Z",[98,184,194,212,253,260,267,284,305],{"_key":99,"_type":100,"announcement":101,"content":105,"ctas":138,"options":172,"techPills":177},"ecda68261866","custom.hero",{"_type":102,"colorSource":50,"enabled":103,"showIndicator":103,"text":104},"announcement.options",true,"Nuxt 4 + Sanity page-builder starter",[106,129],{"_key":107,"_type":108,"children":109,"markDefs":122,"style":128},"5710ba318963","block",[110,117],{"_key":111,"_type":112,"marks":113,"text":116},"c79263256e60","span",[114,115],"extrabold","ca8eb75fa61e","Ship a CMS-driven site ",{"_key":118,"_type":112,"marks":119,"text":121},"ff677e93b7b3",[120,114,115],"c2fd728a9df3","without building the plumbing.",[123,125],{"_key":120,"_type":124,"colorSource":50,"direction":22,"gradientType":23,"radialPosition":24},"gradientText",{"_key":115,"_type":126,"sizeClass":127},"fontSize","text-4xl sm:text-5xl md:text-6xl","h1",{"_key":130,"_type":108,"children":131,"markDefs":136,"style":137},"3e828f72ea18",[132],{"_key":133,"_type":112,"marks":134,"text":135},"889209a995ab",[],"Compose pages from 20+ theme-aware blocks in Sanity Studio. Type-safe end to end. Rebrand from the CMS — no code, no redeploy.",[],"paragraph-large",{"_type":139,"groupOptions":140,"links":146},"link.group",{"_type":141,"alignment":142,"fullWidth":14,"gap":144,"orientation":145},"link.group.options",{"mobile":143},"justify-start",16,"horizontal",[147,159],{"_key":148,"_type":13,"components":53,"file":53,"internal":149,"newTab":14,"style":152,"title":157,"type":158},"928ba28560a3",{"_id":150,"_type":95,"url":151},"eab0fcdc-d2c1-4f3a-8f82-37fea2c1cbfa","pricing",{"_type":16,"icon":153,"iconPosition":155,"stylePreset":156},{"_type":31,"name":154,"type":29},"pi-arrow-right","end",{"_ref":36,"_type":37},"Get Nuxion","internal",{"_key":160,"_type":13,"components":53,"file":53,"internal":53,"newTab":103,"style":161,"title":169,"type":170,"url":171},"4e4804c0ea5e",{"_type":16,"design":162,"icon":166,"iconPosition":155,"stylePreset":168},{"_type":18,"colorSource":19,"gradient":163,"hover":164,"shape":29,"style":29},{"_type":21,"direction":22,"gradientType":23,"radialPosition":24},{"_type":26,"colorSource":27,"gradient":165},{"_type":21,"direction":22,"gradientType":23,"radialPosition":24},{"_type":31,"name":167,"type":29},"pi-play",{"_ref":48,"_type":37},"View Demo","external","https:\u002F\u002Fdemo.nuxion.io",{"_type":173,"container":174,"hideSection":14,"mediaOpacity":175,"slideEffect":176,"sticky":14},"section.options","contained",0,"fade",[178,179,180,181,182,183],"Nuxt 4","Sanity V6","Tailwind V4","Shadcn-vue \u002F Reka UI","Pinia","Typescript",{"_key":185,"_type":186,"eyebrow":187,"items":188,"options":193},"fbebcc61d798","custom.trust-bar","Built on a modern stack",[189,190,191,192,183,182],"Nuxt 4 \u002F Vue 3","Sanity.io","TailwindCSS v4","shadcn-vue \u002F Reka UI",{"_type":173,"container":174,"hideSection":14,"mediaOpacity":175,"slideEffect":176,"sticky":14},{"_key":195,"_type":196,"afterItems":197,"afterLabel":202,"beforeItems":203,"beforeLabel":208,"eyebrow":209,"heading":210,"options":211},"ecd93b14074f","custom.problem-solution",[198,199,200,201]," Define a schema, drop in a Vue component","Themes & fonts are CMS docs → CSS vars","TypeGen keeps types in lockstep, auto","Blog, SEO, redirects, consent, forms included","AFTER — schema + component, done",[204,205,206,207],"Wire up a page-builder + block registry by hand","Custom theming layer for colors & fonts","Hand-written TS glue between CMS and components","SEO, redirects, consent, forms — all bespoke","Before -  weeks of glue code","WHY NUXION","Stop rebuilding the same infrastructure.",{"_type":173,"container":174,"hideSection":14,"mediaOpacity":175,"slideEffect":176,"sticky":14},{"_key":213,"_type":214,"component":215,"options":252},"683d72560878","reusable.block",{"_createdAt":216,"_id":217,"_rev":218,"_system":219,"_type":222,"_updatedAt":223,"component":224,"title":251},"2026-07-29T16:32:34Z","18c81f9b-088b-4718-bb47-5d1b248bec54","ovbB68c5XFTlrvwLEPObMZ",{"base":220},{"id":217,"rev":221},"WhwuZEsCwMqdGxJHW4pEzj","component","2026-08-15T14:51:47Z",[225],{"_key":226,"_type":227,"description":228,"eyebrow":229,"heading":230,"options":231,"themes":232},"8abf0b68ddbd","custom.theme-playground","Each theme is a Sanity document compiled to CSS variables at build time. Click a swatch — the preview re-themes with zero reload.","THEME PLAYGROUND","Preset themes, applied",{"_type":173,"container":174,"hideSection":14,"mediaOpacity":175,"slideEffect":176,"sticky":14},[233,236,239,242,245,248],{"_key":234,"_ref":235,"_type":37},"4cc9311f3247","deeda93a-da5b-4b46-9a42-2bbaab4b744e",{"_key":237,"_ref":238,"_type":37},"575108a58fa5","04660f0b-a341-49d6-94f2-5d211c8eca54",{"_key":240,"_ref":241,"_type":37},"92b82bfd4764","1a6a1945-8c18-4b61-91a7-6b862a7e3a9c",{"_key":243,"_ref":244,"_type":37},"8881a31505c5","143a28ec-a1c7-4960-8a83-1e18176f09ef",{"_key":246,"_ref":247,"_type":37},"ea7e1ba815a8","749e3441-68a7-4fd3-8340-7f6eb2263a11",{"_key":249,"_ref":250,"_type":37},"29cbbc73e01c","758c56da-657d-4c7d-afd5-fef7a8eaaf72","Preset Themes Playground",{"_type":173,"colorSource":50,"container":174,"hideSection":14,"mediaOpacity":175,"slideEffect":176,"sticky":14},{"_key":254,"_type":255,"description":256,"eyebrow":257,"heading":258,"options":259},"5cc859b791c9","custom.palette-builder","Drag the accent — the one colour that seeds your theme. Its surface, border, glow and button tokens are derived automatically, and every block on the page restyles as you go. This is the real CMS theming flow, live in the page.","COLOUR THEMING","One accent colour. Every surface.",{"_type":173,"container":174,"hideSection":14,"mediaOpacity":175,"slideEffect":176,"sticky":14},{"_key":261,"_type":262,"description":263,"eyebrow":264,"heading":265,"options":266},"fde989ba2d95","custom.font-pairing","Select a pairing — the type scale below updates in place. In Studio these map to a fonts document compiled into the theme's CSS variables.","FONT PAIRING SWITCHER","Fonts are documents too.",{"_type":173,"colorSource":50,"container":174,"hideSection":14,"mediaOpacity":175,"slideEffect":176,"sticky":14},{"_key":268,"_type":214,"component":269,"options":283},"489ef55d10ee",{"_createdAt":270,"_id":271,"_rev":272,"_type":222,"_updatedAt":273,"component":274,"title":282},"2026-07-29T00:19:34Z","8437e107-e35f-421a-929a-8333091e206c","8KXLMLizI91W50TqH7LVbV","2026-07-29T00:20:15Z",[275],{"_key":276,"_type":277,"description":278,"eyebrow":279,"heading":280,"options":281},"2626f65e408b","custom.schema-pipeline","Sanity TypeGen generates types from your schemas and the component registry is compile-time checked. The whole chain stays in lockstep.","TYPE-SAFE, END TO END","Rename a field. Break the build, not prod.",{"_type":173,"colorSource":50,"container":174,"hideSection":14,"mediaOpacity":175,"slideEffect":176,"sticky":14},"Type Safe, End to End: Schema Pipeline",{"_type":173,"colorSource":50,"container":174,"hideSection":14,"mediaOpacity":175,"slideEffect":176,"sticky":14},{"_key":285,"_type":214,"component":286,"options":304},"2a1b8f4380fa",{"_createdAt":287,"_id":288,"_rev":289,"_type":222,"_updatedAt":290,"component":291,"title":303},"2026-07-29T00:15:39Z","4d8f4d61-6ff3-4b8f-b2b2-c9a6f46e6d06","8KXLMLizI91W50TqH7L9vt","2026-07-29T00:16:05Z",[292],{"_key":293,"_type":294,"description":295,"eyebrow":296,"heading":297,"options":298,"points":299},"3c1d6827b0fe","custom.dev-experience","Setup, dev, and scaffolding are single commands. The scaffolder generates schema + typed Vue component + registration in one step. Vitest, e2e and CI ship in the box.","DEVELOPER EXPERIENCE","One command. One terminal.",{"_type":173,"container":174,"hideSection":14,"mediaOpacity":175,"slideEffect":176,"sticky":14},[300,301,302],"One-command setup and single-terminal dev","Scaffolder: schema + typed Vue component + registration","Vitest, e2e and CI wired from the first commit","Developer Experience",{"_type":173,"colorSource":50,"container":174,"hideSection":14,"mediaOpacity":175,"slideEffect":176,"sticky":14},{"_key":306,"_type":214,"component":307,"options":368},"3501a69de1f5",{"_createdAt":308,"_id":309,"_rev":310,"_system":311,"_type":222,"_updatedAt":314,"component":315,"title":367},"2026-09-16T11:06:14Z","b2c8abe0-3a2b-4d09-9057-b091a5b25d9b","Kt5kBR3GjsHT91OCapMows",{"base":312},{"id":309,"rev":313},"0DTmpQxN2Slvr9b7DFooSR","2026-09-17T11:11:09Z",[316],{"_key":317,"_type":318,"content":319,"ctas":350,"options":366},"e8a7a48b5f0a","custom.callout",[320,336],{"_key":321,"_type":108,"children":322,"markDefs":333,"style":335},"445b0bc6d901",[323,328],{"_key":324,"_type":112,"marks":325,"text":327},"ad7d3a1609b6",[326],"strong","Stop customizing templates.\n",{"_key":329,"_type":112,"marks":330,"text":332},"14b635565e47",[326,331],"cc4aa453b8bb","Start shipping brands.",[334],{"_key":331,"_type":124,"colorSource":50,"direction":22,"gradientType":23,"radialPosition":24},"h2",{"_key":337,"_type":108,"children":338,"markDefs":344,"style":349},"022bfbac957d",[339],{"_key":340,"_type":112,"marks":341,"text":343},"3f0e847cca08",[342],"ef3105647726","Everything above just ran live on this page. Now picture it running yours.",[345],{"_key":342,"_type":346,"alignment":347,"preset":348},"widthControl","center","md","normal",{"_type":139,"groupOptions":351,"links":354},{"_type":141,"alignment":352,"fullWidth":14,"gap":144,"orientation":145},{"mobile":353},"justify-center",[355,361],{"_key":356,"_type":13,"internal":357,"newTab":14,"style":358,"title":157,"type":158},"92d23c7b8f71",{"_ref":150,"_type":37},{"_type":16,"icon":359,"iconPosition":155,"stylePreset":360},{"_type":31,"name":154,"type":29},{"_ref":36,"_type":37},{"_key":362,"_type":13,"newTab":103,"style":363,"title":169,"type":170,"url":171},"3af7805ccc70",{"_type":16,"icon":364,"iconPosition":155,"stylePreset":365},{"_type":31,"name":167,"type":29},{"_ref":48,"_type":37},{"_type":173,"colorSource":50,"container":174,"hideSection":14,"mediaOpacity":175,"slideEffect":176,"sticky":14},"Pricing CTA",{"_type":173,"colorSource":50,"container":369,"hideSection":14,"mediaOpacity":175,"slideEffect":176,"sticky":14},"bleed","\u002Fhome",{"_type":372,"includeInSitemap":103,"slug":373},"page.routing.options",{"_type":374,"current":375},"slug","home",{"_type":377,"favicon":378,"image":53,"socialImages":379,"title":380},"seo",{"mimeType":53,"url":53},{"facebook":53,"linkedin":53,"twitter":53},"Nuxion — Build Client Sites on Nuxt 4 and Sanity","Home","\u003Cpre class=\"shiki shiki-themes github-light github-dark nuxion-code__pre\" style=\"--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">npm\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> run\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> setup:project\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">✔\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> env\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> linked\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> ·\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> types\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> generated\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> ·\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> dev\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> ready\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">npm\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> run\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> scaffold:component\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> --\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> custom.testimonial\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">✔\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> schema\u002Fcustom.testimonial.ts\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">✔\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> components\u002Fcustom\u002FCustomTestimonial.vue\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">✔\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> registered\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> in\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> customComponentImports\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">cd\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> studio\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> &#x26;&#x26; \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">npm\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> run\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> schema:types\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">✓\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> schema\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> types\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> →\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> sanity.types.ts\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",1789667201026]