Project Structure

Learn how a Docd project is organized and where to find the files that matter most.

Overview

A project created with create-docd starts small on purpose:

my-docd-site/
├── app/
   └── app.config.ts
├── content/
   ├── index.md
   └── getting-started.md
├── nuxt.config.ts
├── package.json
└── tsconfig.json

This is a standard Nuxt project. Docd is applied as a Nuxt layer — not a closed system — so all normal Nuxt conventions apply.

content/

This is where your documentation lives.

content/
├── index.md
├── getting-started.md
└── guide/
    └── configuration.md

Docd uses the content directory in two ways:

  • index.md becomes the landing page
  • all other Markdown files become documentation routes

If you prefer to separate your docs from the landing page, Docd also supports a docs/ subfolder:

content/
├── index.md
└── docs/
    ├── getting-started.md
    └── guide/
        └── configuration.md

In that structure, docs pages are served under the /docs prefix.

nuxt.config.ts

This is where the Docd layer is applied:

ts

nuxt.config.ts

export default defineNuxtConfig({
  extends: ["@baybreezy/docd"],
});

You can also add Nuxt modules, runtime config, site metadata, or any other project-level Nuxt configuration here.

app/app.config.ts

This is the main place to customize Docd's UI and behavior.

ts

app/app.config.ts

export default defineAppConfig({
  docd: {
    ui: {
      header: {
        title: "My Docd Site",
      },
    },
  },
});

Optional Nuxt directories

Because Docd is a Nuxt layer, you can add standard Nuxt app files whenever you need them:

my-docd-site/
├── app/
   ├── components/
   ├── layouts/
   ├── pages/
   ├── composables/
   ├── plugins/
   └── middleware/
├── server/
   └── api/

This means you can override layouts, add custom pages, register your own components, or extend server behavior without leaving the standard Nuxt model.

Where you will spend most of your time

For most documentation sites, the three files that matter most are:

  • content/ — your Markdown pages
  • app/app.config.ts — site branding and UI customization
  • nuxt.config.ts — modules and project-level configuration