PluginBench
Skill
Review
Audit score 70

nuxt-content

onmax/nuxt-skills

Typed content collections, markdown rendering, and CMS features for Nuxt with SQL queries and NuxtStudio integration.

What is nuxt-content?

Nuxt Content v3 provides a structured way to manage content-driven Nuxt applications using typed collections, remote sources, and SQL-backed queries. Use it when building documentation sites, blogs, or CMS-powered apps with markdown, MDC components, and multi-language support.

  • Define typed content collections with schemas and multiple sources (local files, GitHub repos, APIs)
  • Query content with SQL-like fluent API (queryCollection) for filtering, navigation, and search
  • Render markdown and MDC (Vue components in markdown) with ContentRenderer and prose components
  • Configure database backends (SQLite, PostgreSQL, D1, LibSQL) and markdown plugins
  • Integrate with NuxtStudio for live editing and preview mode
  • Support i18n multi-language content and LLM integration

How to install nuxt-content

npx skills add https://github.com/onmax/nuxt-skills --skill nuxt-content
Prerequisites
  • Nuxt 3 project
  • @nuxt/content v3 installed
  • content.config.ts file for collection definitions
Claude Code
Cursor
Windsurf
Cline

How to use nuxt-content

  1. 1.Define collections in content.config.ts using defineCollection with schemas
  2. 2.Organize content files in the content/ directory matching your collection source globs
  3. 3.Create MDC components in components/content/ for reusable markdown elements
  4. 4.Use queryCollection() in pages or components to fetch and filter content
  5. 5.Render content with ContentRenderer component, passing the parsed page object
  6. 6.Run npx nuxi typecheck to verify collection types resolve correctly

Use cases

Good for
  • Building a blog with typed posts, categories, and full-text search
  • Creating documentation sites with auto-generated navigation and multi-version support
  • Setting up a CMS with remote content sources from GitHub or external APIs
  • Rendering markdown with embedded Vue components for interactive content
  • Deploying content-driven apps to NuxtHub with database-backed queries
Who it's for
  • Nuxt developers building content-heavy applications
  • Documentation site maintainers
  • CMS integrators working with Nuxt
  • Teams using NuxtStudio for collaborative content editing

nuxt-content FAQ

What's the difference between 'page' and 'data' collection types?

'page' collections include routes and body content (for markdown-driven pages), while 'data' collections contain structured data only without routes (for structured content like products or testimonials).

How do I query content from remote sources like GitHub?

Use defineCollectionSource with source.repository pointing to a GitHub repo, or define a custom source function that fetches from external APIs.

Can I use Vue components inside markdown?

Yes, use MDC (Markdown Components) syntax in your markdown files. Create Vue components in components/content/ and reference them in markdown with <ComponentName /> syntax.

What databases are supported?

SQLite, PostgreSQL, D1 (Cloudflare), and LibSQL are supported. Configure via content.config.ts database option.

How do I integrate with NuxtStudio?

Enable NuxtStudio in your nuxt.config.ts, configure collections with proper schemas, and use preview mode to see live edits before publishing.

Full instructions (SKILL.md)

Source of truth, from onmax/nuxt-skills.


name: nuxt-content description: Use when working with Nuxt Content v3, markdown content, or CMS features in Nuxt - provides collections (local/remote/API sources), queryCollection API, MDC rendering, database configuration, NuxtStudio integration, hooks, i18n patterns, and LLMs integration license: MIT

Nuxt Content v3

Progressive guidance for content-driven Nuxt apps with typed collections and SQL-backed queries.

When to Use

Working with:

  • Content collections (content.config.ts, defineCollection)
  • Remote sources (GitHub repos, external APIs via defineCollectionSource)
  • Content queries (queryCollection, navigation, search)
  • MDC rendering (<ContentRenderer>, prose components)
  • Database configuration (SQLite, PostgreSQL, D1, LibSQL)
  • Content hooks (content:file:beforeParse, content:file:afterParse)
  • i18n multi-language content
  • NuxtStudio or preview mode
  • LLMs integration (nuxt-llms)

For writing documentation: use document-writer skill For Nuxt basics: use nuxt skill For NuxtHub deployment: use nuxthub skill (NuxtHub v1 compatible)

Available Guidance

Read specific files based on current work:

Loading Files

Consider loading these reference files based on your task:

DO NOT load all files at once. Load only what's relevant to your current task.

Key Concepts

ConceptPurpose
CollectionsTyped content groups with schemas
Page vs Datapage = routes + body, data = structured data only
Remote sourcessource.repository for GitHub, defineCollectionSource for APIs
queryCollectionSQL-like fluent API for content
MDCVue components inside markdown
ContentRendererRenders parsed markdown body

Quick Start

// content.config.ts
import { defineCollection, defineContentConfig, z } from '@nuxt/content'

export default defineContentConfig({
  collections: {
    blog: defineCollection({
      type: 'page',
      source: 'blog/**',
      schema: z.object({
        title: z.string(),
        date: z.date(),
      }),
    }),
  },
})
<!-- pages/blog/[...slug].vue -->
<script setup lang="ts">
const { data: page } = await useAsyncData(
  () => queryCollection('blog').path(useRoute().path).first()
)
</script>

<template>
  <ContentRenderer v-if="page" :value="page" />
</template>

Verify setup: Run npx nuxi typecheck to confirm collection types resolve. If queryCollection returns empty, check that content files exist in the path matching your source glob.

Directory Structure

project/
├── content/                    # Content files
│   ├── blog/                   # Maps to 'blog' collection
│   └── .navigation.yml         # Navigation metadata
├── components/content/         # MDC components
└── content.config.ts           # Collection definitions

Official Documentation

Token Efficiency

Main skill: ~300 tokens. Each sub-file: ~800-1200 tokens. Only load files relevant to current task.