CtrlK
BlogDocsLog inGet started
Tessl Logo

nuxt-content

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

Install with Tessl CLI

npx tessl i github:popey/nuxt-skills --skill nuxt-content
What are skills?

100

Does it follow best practices?

Validation for skill structure

SKILL.md
Review
Evals

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:

  • references/collections.md - defineCollection, schemas, sources, content.config.ts
  • references/querying.md - queryCollection, navigation, search, surroundings
  • references/rendering.md - ContentRenderer, MDC syntax, prose components, Shiki
  • references/config.md - Database setup, markdown plugins, renderer options
  • references/studio.md - NuxtStudio integration, preview mode, live editing

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, 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.

Repository
popey/nuxt-skills
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.