Nuxt gives you server routes, useAsyncData, Nitro caching, and hybrid rendering out of the box. The CMS you put behind it decides three things: how fast your editors can publish without filing a ticket, how much infrastructure your team ends up owning, and what the bill looks like when the second and third site show up.

This is a comparison of seven options that work well with Nuxt 3 and Nuxt 4. I fetched every vendor's pricing page on November 10, 2026 and linked each figure to the page it came from, with the date. Pricing moves. When you read this, check the links.

A note on what is here: a vendor only made the list if its current pricing page could be fetched and cited. No remembered numbers, no "approximately," no vendor quoted from an older version of this article.

Quick comparison

CMS Hosting model Content lives in Best fit
Cosmic Managed SaaS Hosted API Teams running several sites or brands who want editors publishing without engineering
Nuxt Content Self-hosted, in your repo Markdown/YAML/JSON files in git Docs, blogs, and marketing sites where the authors are developers
Storyblok Managed SaaS Hosted API Marketing teams who want visual, block-level page editing
Sanity Managed SaaS Hosted API Teams who want a fully customizable editing environment and will build it
Strapi Self-hosted or Strapi Cloud Your own database Teams who need the content layer inside their own infrastructure
Prismic Managed SaaS Hosted API Small sites and single-repository projects with a tight budget
Directus Self-hosted or Directus Cloud Your own SQL database Teams wrapping an existing database with an admin and API layer

1. Cosmic

Cosmic is a managed headless CMS. You model content in a dashboard, editors publish there, and Nuxt reads it over a REST API or the TypeScript SDK. There is nothing to deploy, patch, or scale on your side. Cosmic is a Y Combinator W19 company.

For Nuxt specifically, the fit is straightforward. Content comes back as plain JSON from an edge-cached API, so it drops into a Nitro server route or useAsyncData with no adapter layer in between. Image optimization and video delivery are handled on the CDN, so you are not wiring up a separate transform service for your <NuxtImg> sources.

Where Cosmic separates from the rest of this list is the multi-property case. If you run five brand sites, or a franchise network, or a set of client sites, you can keep a Bucket per brand while sharing content models and billing across them, instead of standing up a separate install or a separate space per site.

Pricing (cosmicjs.com/pricing, read November 10, 2026): Free at $0/month with 1 Bucket, 2 team members, and 1,000 Objects. Builder $99/month, Team $299/month, Business $499/month, and Enterprise at custom pricing. Additional users beyond a plan's included team members are $29/user/month. Per-project feature add-ons (Webhooks, Localization, Revision History, Automatic Backups) are $99/month each or $199/month for all four.

Cosmic charges per seat once you pass your plan's included team members, so price it on the real size of your editorial team rather than the base plan alone.

The editorial argument, from a real customer:

"Cosmic is: us never having to ask a developer to change anything on the backend of our website."
— Maximilian Wuhr, Co-Founder at FINN

Strengths: No infrastructure to run. Editors ship independently. Clean multi-site and multi-locale story. REST API, TypeScript SDK, and a CLI.

Trade-offs: It is a hosted service, so self-hosting is not an option. The free tier's 1,000 Objects is fine for a marketing site and tight for a large content archive.

Reading Cosmic content in Nuxt

Install the official SDK, @cosmicjs/sdk, then create a server route so your read key never reaches the browser:

// server/api/posts.get.ts import { createBucketClient } from '@cosmicjs/sdk' const cosmic = createBucketClient({ bucketSlug: process.env.COSMIC_BUCKET_SLUG!, readKey: process.env.COSMIC_READ_KEY!, }) export default defineEventHandler(async () => { const { objects } = await cosmic.objects .find({ type: 'posts' }) .props(['id', 'title', 'slug', 'metadata']) .depth(1) return objects }) 

Then consume it in a page with Nuxt's own data layer:

<!-- pages/blog/index.vue --> <script setup lang="ts"> const { data: posts } = await useAsyncData('posts', () => $fetch('/api/posts')) </script> <template> <ul> <li v-for="post in posts" :key="post.id"> <NuxtLink :to="`/blog/${post.slug}`">{{ post.title }}</NuxtLink> </li> </ul> </template> 

That is the whole integration. No adapter package, no build step, no schema generation. Full method reference is in the Cosmic docs.

Running more than one Nuxt site? That is where a managed CMS stops being a convenience and starts being the thing that keeps your team off the critical path. Start free on Cosmic and model your first content type in a few minutes.

2. Nuxt Content

Nuxt Content is the first-party option, and for a certain kind of project it is the correct answer before you evaluate anything else. Content lives as Markdown, YAML, CSV, or JSON files inside your repository, and you query it with a MongoDB-like query builder backed by SQLite (content.nuxt.com, read November 10, 2026).

The feature that makes it distinctly Nuxt is MDC syntax: you use Vue components, with props and slots, directly inside Markdown files. Your content authors get a hero block or a callout component without you building a block renderer.

// content.config.ts import { defineContentConfig, defineCollection } from '@nuxt/content' import { z } from 'zod' export default defineContentConfig({ collections: { blog: defineCollection({ source: 'blog/*.md', type: 'page', schema: z.object({ tags: z.array(z.string()), image: z.string(), date: z.Date(), }), }), }, }) 

Collections give you schema validation and type-safety on frontmatter, with autocompletion in your Vue files. Querying is queryCollection('blog').all().

For non-developer editing, Nuxt Studio is the visual layer. Per content.nuxt.com (read November 10, 2026), Studio is described as a free and open-source visual interface for editing content in production, with live preview on the production site, visual editing of Markdown, YML, and JSON files, and publishing changes directly to your git provider.

Pricing: Nuxt Content is an open-source Nuxt module. Your cost is your hosting.

Strengths: Zero external service. Content versioned in git alongside code. Vue components inside Markdown. Type-safe queries.

Trade-offs: Content is coupled to deploys and to your repository. Editors need git as the system of record, which suits documentation sites and suits a 12-person marketing team considerably less. There is no hosted media pipeline, roles and permissions layer, or multi-brand content model to inherit.

3. Storyblok

Storyblok is a managed CMS built around a visual editor, where editors compose pages from reusable blocks and see the result rendered live. Its Vue and Nuxt support has been a focus for years, which is why it shows up in nearly every Nuxt CMS shortlist.

If your buyers are marketers who want to build landing pages without a developer, the block-based visual editing model is the main reason to pick it.

Pricing (storyblok.com/pricing, read November 10, 2026): a free Starter tier, Growth at $99/month (lower on annual billing), Growth Plus at $349/month, and Enterprise at custom pricing. Seats are limited per tier, with additional seats billed per seat on top of the plan price, so check the current seat count on the plan card against your editorial headcount.

Strengths: Strong visual page building. Long-standing Vue and Nuxt focus. Component-shaped content models that map cleanly to Vue components.

Trade-offs: The block model is opinionated. Content that is not page-shaped, like a product catalog or a structured data set, fits it less naturally.

4. Sanity

Sanity pairs a hosted content backend with Studio, an editing environment you configure in code and deploy yourself. If you want the authoring experience to be a first-class part of your codebase, that is the draw. It also means the editor UI is a project you own and maintain.

Pricing (sanity.io/pricing, read November 10, 2026): a Free tier at $0 with generous seat allowance and capped documents, datasets, and API requests. Growth is billed per seat at $15/seat/month, with document and dataset caps and paid add-ons for additional quota and support. Enterprise is custom.

Watch the add-on line items rather than the headline seat price. On the plan page read November 10, 2026, extra datasets and increased quota are separately priced and can dominate the bill well before seat count does.

Strengths: Highly customizable editing environment. Real-time collaboration. Strong structured content modeling.

Trade-offs: You are building and maintaining the Studio. Usage-based caps on documents, datasets, and API requests mean cost scales with what your site actually does, which takes modeling before you commit.

5. Strapi

Strapi is the default answer when the requirement is "the content layer runs in our infrastructure." It is a Node.js CMS with an admin panel, running against your own database. For a Nuxt team already deploying Node services, there is nothing unfamiliar about it.

Pricing, self-hosted (strapi.io/pricing-cms, read November 10, 2026): a free Community edition under the MIT license. Growth at $45/month including 3 users, with additional users at $15/user/month, an SSO add-on priced separately, and Enterprise at custom pricing.

Pricing, Strapi Cloud (strapi.io/pricing-cloud, read November 10, 2026): Starter at $35/project/month, Pro at $90/project/month, and Business at $450/project/month.

The per-project structure on Cloud is the number to model carefully if you run several sites. Five properties on Pro is five times $90/month, before seats.

Strengths: Open source and self-hostable. Your data in your database. Extensible via plugins.

Trade-offs: Self-hosting means you own upgrades, scaling, backups, and uptime. Cloud pricing is per project, which gets expensive across a portfolio of sites.

6. Prismic

Prismic is a managed CMS organized around a repository per project, with a page-builder style authoring experience. Its appeal is the price of entry for small projects.

Pricing (prismic.io/pricing, read November 10, 2026): Free at $0 with a single user, then Starter at $10/month, Small at $25/month, Medium at $150/month, and Platinum at $675/month, with Enterprise custom. Plans are priced per repository, and user counts and locale counts step up with each tier.

The per-repository structure is the thing to check. One site on Small is inexpensive. Eight sites on Small is eight subscriptions.

Strengths: Low entry price. Page-builder authoring that non-developers pick up quickly. Solid Nuxt community support.

Trade-offs: Per-repository pricing scales poorly across a portfolio. Locale allowances are tier-gated, which matters if you are international early.

7. Directus

Directus wraps an existing SQL database with an admin interface and an API, which makes it a strong pick when the data already exists and you want a content layer over it rather than a new content store.

Pricing (directus.com/pricing, read November 10, 2026): Core at $89/month billed yearly, or $99 monthly, including 3 user seats, 25 collections, and 5 flows. Additional seats are listed at $50/seat/month and additional collections at $100 per 25-pack. There is also an Open Innovation Grant: the page states that organizations under $5M in annual revenue with fewer than 50 employees qualify for fully permissive access at no software cost when self-hosted, with cloud hosting at $99/month.

One caveat worth flagging, because it affects budgeting. On the page as read on November 10, 2026, the Team tier is stated two different ways on the same page: the plan card shows $588/month billed yearly, or $698 monthly, while the FAQ further down states $499/month on an annual commitment ($5,988/year), or $599/month monthly. Both were live when I read it. Confirm the current figure with Directus before you plan around it.

Strengths: Works against your existing database schema. Self-hostable. Flows for automation. Granular access control on paid tiers.

Trade-offs: It is a data platform first and a publishing tool second, so the editorial experience needs more shaping for a marketing team. Seat and collection limits on Core are tight, and the next tier is a significant step up.

How to choose

Your authors are developers and the site is a blog or docs. Use Nuxt Content. It is first-party, free, and MDC is genuinely better than a block renderer you would build yourself.

You have non-technical editors and one site. Storyblok or Prismic. Both give editors a visual surface, and Prismic's entry tiers are cheap for a single repository.

You want the editing environment to be code you own. Sanity, with the understanding that Studio becomes a project on your roadmap.

Regulatory or infrastructure requirements say the content layer stays in-house. Strapi self-hosted, or Directus if you are putting a content layer over a database that already exists.

You run several sites, brands, or client properties and editors keep waiting on engineering. Cosmic. The per-property math is where this gets decided: per-project and per-repository pricing models compound fast across a portfolio, and running your own installs multiplies the upgrade and uptime work by the number of sites.

Frequently asked questions

Does Cosmic work with Nuxt 3 and Nuxt 4?
Yes. Cosmic is framework-agnostic. You call the REST API or the TypeScript SDK from a Nitro server route or inside useAsyncData, exactly as in the example above.

Does Cosmic offer GraphQL?
No. Cosmic provides a REST API, the TypeScript SDK (@cosmicjs/sdk), and a CLI. If a GraphQL layer is a hard requirement for your stack, that is a real consideration to weigh.

Can I preview drafts in Nuxt?
Yes. Fetch with a preview-enabled client in a server route guarded by a preview cookie or token, then render the draft on the real site.

How much does Cosmic cost for a small team?
Free at $0/month covers 1 Bucket, 2 team members, and 1,000 Objects. Builder is $99/month, Team is $299/month, Business is $499/month, and additional users beyond your plan's included team members are $29/user/month (cosmicjs.com/pricing, read November 10, 2026).

Start building

Pick the one that matches who edits your content and how many properties you run. Those two questions decide this more reliably than a feature matrix does.

If you are running Nuxt and you want editors publishing on their own schedule across every site you own, see Cosmic plans and start free. Free tier, no credit card.