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:

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.