Nuxt and Nuxt Content Module: md (Blog Post) Files Are Not Being Added Even Though Config Looks Correct
01:44 23 Dec 2025

For the last couple of hours, I have been struggling to try get my test markdown file to render on my new nuxt web application. I followed the instructions outlined in the nuxt content site and still cannot figure out why I get a 404 - Not Found. This problem happens locally on my Windows 11 machine.

In the terminal on my IDE, the info message I get back when I run npm run dev makes me think that content configuration was loaded, but no files were found (markdown files in my case):

Processed 2 collections and 0 files in 18.24ms (0 cached, 0 parsed)

I also had a look at the contents.sqlite database that gets generated after running npm run build. What I found is that the markdown file I added does not get listed in the content_posts table.

I had added a content.config.ts file, which looks as follows:

import { defineCollection, defineContentConfig } from '@nuxt/content'
import { z } from 'zod'

const cfg = defineContentConfig({
  collections: {
    posts: defineCollection({
      type: 'page',
      source: 'posts/*.md',
    }),
  },
})
console.log(cfg.collections['posts'].source)
console.log(cfg.$env)
export default cfg

Please ignore the console.log lines - these I have added in an attempt to try understand the shape of the cfg object and see if I cannot get clues surrounding my problem.

Below is an image of the folder structure for my project. Nothing out of the ordinary here:

project folder structure.

Here is what my nuxt.config.ts file looks like. Again, nothing out of the ordinary here:

// https://nuxt.com/docs/api/configuration/nuxt-config
import tailwindcss from '@tailwindcss/vite'
import { fileURLToPath, URL } from 'node:url'

export default defineNuxtConfig({

  modules: ['@nuxt/content', '@nuxt/eslint'],
  devtools: { enabled: true },
  app: {
    head: {
      title: '<>',
      meta: [
        { name: 'description', content: '<>' },
        { name: 'keywords', content: '<>' },
        { name: 'author', content: '<>' },
        { name: 'viewport', content: 'width=device-width, initial-scale=1' },
        { name: 'bluesky:handle', content: '<>' },
        { name: 'threads:handle', content: '<>' },
      ],
    },
  },
  css: ['./app/assets/styles/main.css'], content: {
    build: {
      markdown: {
        toc: {
          depth: 3,
        },
      },
    },
  },
  compatibilityDate: '2025-11-01',
  vite: {
    plugins: [
      tailwindcss(),
    ],
  },
  eslint: {
    config: {
      stylistic: true,
    },
  },
})

This is my package.json file. The version of nuxt I am using seems to be current:

{
  "name": "test",
  "type": "module",
  "private": true,
  "scripts": {
    "build": "nuxt build",
    "dev": "nuxt dev",
    "dev:prepare": "nuxt prepare",
    "generate": "nuxt generate",
    "preview": "nuxt preview",
    "postinstall": "nuxt prepare",
    "lint": "eslint .",
    "lint:fix": "eslint . --fix"
  },
  "dependencies": {
    "@fortawesome/fontawesome-svg-core": "^7.1.0",
    "@fortawesome/vue-fontawesome": "^3.1.2",
    "@nuxt/content": "^3.8.0",
    "@nuxt/eslint": "^1.10.0",
    "@tailwindcss/cli": "^4.1.16",
    "@tailwindcss/vite": "^4.1.18",
    "better-sqlite3": "^12.4.1",
    "eslint": "^9.39.1",
    "nuxt": "^4.2.0",
    "vue": "^3.5.22",
    "vue-router": "^4.6.3"
  },
  "devDependencies": {
    "@nuxtjs/tailwindcss": "^6.14.0",
    "@types/node": "^25.0.3",
    "autoprefixer": "^10.4.21",
    "postcss": "^8.5.6",
    "tailwindcss": "^4.1.18"
  }
}

I have tried adjusting the source property on the content.config.ts file with no luck. I am not sure what else I could try, and what the issue could be. I have tried deleting my node_modules folder, the generated sqlite database with no luck.

nuxt.js nuxt-content