Ship a CMS-driven site without building the plumbing.
Compose pages from 20+ theme-aware blocks in Sanity Studio. Type-safe end to end. Rebrand from the CMS — no code, no redeploy.
Built on a modern stack
WHY NUXION
Stop rebuilding the same infrastructure.
THEME PLAYGROUND INTERACTIVE
Preset themes, applied
Each theme is a Sanity document compiled to CSS variables at build time. Click a swatch — the preview re-themes with zero reload.
Build faster with Nuxion
Every block reads the same theme tokens — recolor once, restyle everywhere.
COLOUR THEMING INTERACTIVE
One accent colour. Every surface.
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.
Your accent, everywhere.
Heroes, cards, buttons and links inherit the same accent tokens via useAccent() — no skinning, no per-component overrides.
FONT PAIRING SWITCHER INTERACTIVE
Fonts are documents too.
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.
Design that scales
A confident heading pairing
Section subhead level three
Body copy renders in the paired body face. Nuxion keeps heading and body families in sync across every block, so your type system stays coherent whether an editor drops in a hero, a blog post, or a pricing table.
TYPE-SAFE, END TO END
Rename a field. Break the build, not prod.
Sanity TypeGen generates types from your schemas and the component registry is compile-time checked. The whole chain stays in lockstep.
DEVELOPER EXPERIENCE
One command. One terminal.
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.
npm run setup:project
✔ env linked · types generated · dev ready
npm run scaffold:component -- custom.pricing-cta
✔ schema/custom.pricing-cta.ts
✔ components/custom/CustomPricingCta.vue
✔ registered in customComponentImports
cd studio && npm run schema:types
✓ schema types → sanity.types.tsPRICING
One price. Yours forever.
No tiers, no seats, no subscription. Buy once, ship unlimited projects.
Stop skinning templates.
Start shipping brands.
Everything above ran live in this page. Imagine it with your content.