Why Easy CMSFor developers

A CMS you install, not one you run beside your app.

Easy CMS is an npm package. Your content model is TypeScript in your repo, your pages read it with a typed API, and the admin ships with the app you already deploy.

What a separate CMS costs you

  • A second service to deploy, secure, monitor and keep in step with your app.
  • A schema built in a web UI that drifts from the code that reads it.
  • Untyped JSON over HTTP, even when the page renders on the same server.
  • Content locked in someone else’s database, behind someone else’s pricing.
easy-cms.config.ts · app/posts/page.tsx
// easy-cms.config.ts
export default defineConfig({
  db: sqlite({ url: 'file:./data/cms.db' }),
  collections: [
    {
      slug: 'posts',
      drafts: true,
      fields: [
        { name: 'title', type: 'text', required: true },
        { name: 'slug', type: 'slug', from: 'title' },
        { name: 'body', type: 'richText' },
      ],
    },
  ],
})

// app/posts/page.tsx
const cms = await getEasyCMS(config)
const { docs } = await cms.find('posts', { limit: 10 })
docs[0].title // string

When it isn’t a fit

  • Editors must change the content model themselves, without a developer: here the model is code.
  • You need edge runtimes: Easy CMS needs Node.js 22.12 or newer.
  • You need a large marketplace of ready-made integrations today.

Easy CMS is young: its first release was in September 2026 and its community is small. Every other product here has been in production longer, with more people answering questions.

Try it in your own app.

One command sets up a Next.js or Nuxt project with the admin, or deploy a starter to your own Vercel or Netlify.