Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A production-ready boilerplate combining Next.js 15 with Sanity or Storyblok for type-safe headless CMS websites.
CMS-Kit is a production-ready boilerplate from Focus Reactive that builds headless CMS websites on Next.js 15, supporting both Sanity and Storyblok with real-time editing, a shared component library, and one-command Vercel deployment.
CMS-Kit is a monorepo boilerplate for creating content-driven websites with Next.js 15 and a headless CMS. It takes a CMS project (Sanity or Storyblok) as input and outputs a deployable website with pre-built UI components, auto-generated TypeScript types, and a hierarchical page structure. The project was created by Focus Reactive to make headless CMS-based development more accessible and fast.
Key features include a Next.js 15 foundation, real-time editing, multi-CMS support, type-safe generated types, modern Radix UI components, efficient caching, CSS-variable theming, and an automated setup. The following list details each feature with specifics.
pnpm gen:types.packages/ui library.packages/tailwind-config.apps/storyblok/CLI.CMS-Kit is for developers, agencies, and content teams who want to build a headless CMS website without starting from scratch. It suits those who need a type-safe, well-structured Next.js project that targets either Sanity or Storyblok.
pnpm gen) for adding sections.With CMS-Kit you can scaffold, customize, and deploy a content website on either Sanity or Storyblok, and extend it with new sections.
pnpm import-dataset to get example pages.pnpm gen, choose UI, Storyblok, or Sanity, then generate types and style the section with margin, background, alignment, and other common properties.Setup starts by deploying from the repository template or the Vercel button, then installing dependencies with pnpm. For Sanity, you pull environment variables from Vercel into apps/sanity, import the demo dataset, and run pnpm dev. For Storyblok, you run the CLI in apps/storyblok/CLI, which collects your tokens and configures the space, then you set a VERCEL_REDEPLOY_HOOK_URL environment variable and trigger a rebuild.
Yes, the current repository contains apps for Sanity and Storyblok. The Payload app was moved to the separate focusreactive/payload-plugins repository, so Payload is no longer part of CMS-Kit.
Absolutely. The monorepo has separate apps under apps/sanity and apps/storyblok. You can work in just one app and ignore the other, or remove the unused folder entirely.
After creating a component with pnpm gen, go to the CMS folder (apps/sanity or apps/storyblok) and run pnpm sb-login followed by pnpm gen:types. This generates TypeScript types that reflect your updated CMS schemas.
No. The Payload app has moved to focusreactive/payload-plugins. Only Sanity and Storyblok are integrated in CMS-Kit.
CMS-Kit uses pnpm for dependency management and the Turbo build system. The installation command pnpm install is used throughout the setup.