Monorepo Support

Configure Jamdesk to build documentation from a subdirectory in your repository

Keep your documentation alongside your code. Jamdesk works seamlessly with monorepos and any repository where docs aren't at the root.

Prerequisites: You need a Jamdesk project connected to a GitHub repository before configuring monorepo support.

Quick Setup

1
Open project settings

Go to your project in the Jamdesk dashboard and navigate to Settings.

2
Enable monorepo mode

Under the Git Repository section, toggle on Set up as monorepo.

Monorepo toggle in project settings
3
Enter your docs path

Specify the path to the directory containing your docs.json file.

Docs path input showing preview

The preview shows where Jamdesk will look for your configuration file.

4
Save and rebuild

Click Save Changes to apply. Your next build will use the new path.

Understanding the Docs Path

The docs path tells Jamdesk where to find your docs.json configuration file within the repository.

Enter only the directory path, not the filename. Use docs not docs/docs.json.

Path Examples

Repository StructureDocs Path Value
my-repo/docs/docs.jsondocs
my-repo/packages/docs/docs.jsonpackages/docs
my-repo/apps/website/docs/docs.jsonapps/website/docs
my-repo/documentation/docs.jsondocumentation

What Gets Included

When you set a docs path, Jamdesk only processes files within that directory:

  • Content files (.mdx, .md) are compiled into pages
  • Assets in subdirectories (like images/) are included
  • Configuration (docs.json) defines your site

Files outside the docs path are ignored during builds.

Common Monorepo Patterns

Choose the pattern that matches your project structure:

Documentation in a top-level directory.

monorepo/
├── packages/
├── apps/
└── docs/                    # Docs path: docs
    ├── docs.json
    ├── introduction.mdx
    └── guides/

Docs path: docs

Working with Assets

Asset paths in docs.json are always relative to your docs directory, not the repository root.

Example

If your docs are in packages/docs/:

packages/docs/docs.json
{
  "logo": {
    "light": "/images/logo.svg"
  },
  "favicon": "/images/favicon.svg"
}

These paths reference:

  • packages/docs/images/logo.svg
  • packages/docs/images/favicon.svg

Do not use absolute paths from the repository root. This will not work:

"favicon": "/packages/docs/images/favicon.svg"

In MDX Files

The same rule applies to images in your content:

![Screenshot](/images/screenshot.png)

This references an image at [docs-path]/images/screenshot.png.

Internal links work the same regardless of your repository structure. Use paths relative to your docs root:

[See the quickstart guide](/quickstart)
[Installation steps](/quickstart#installation)

These paths match your navigation structure, not your file system.

Build Behavior

Jamdesk only watches for changes within your configured docs path:

  • Changes to packages/docs/** trigger a build
  • Changes to packages/core/** do not trigger a build

This keeps builds fast and focused on documentation changes.

Need to rebuild when other code changes?

If you generate documentation from source code (like API docs from code comments), trigger a manual rebuild from the dashboard or set up a webhook in your CI pipeline.

Workspace Tools Compatibility

Jamdesk works with all major monorepo tools. No special configuration is needed beyond setting the docs path.

ToolSupported
npm workspacesYes
Yarn workspacesYes
pnpm workspacesYes
TurborepoYes
NxYes
LernaYes

Troubleshooting

  1. Verify the exact path in your repository matches what you entered
  2. Ensure docs.json exists at that location
  3. Check for typos - paths are case-sensitive
  4. Remember: use docs not docs/docs.json

Quick check: In your repository, the file should exist at [your-docs-path]/docs.json

Asset paths must be relative to your docs directory.

Correct - relative to docs directory:

"favicon": "/images/favicon.svg"

Wrong - absolute from repo root:

"favicon": "/packages/docs/images/favicon.svg"

Check that your images actually exist in [docs-path]/images/.

Only changes within your configured docs path trigger automatic builds.

  1. Verify you're modifying files inside the docs path
  2. Check that you're pushing to the correct branch
  3. View webhook delivery status in GitHub repository settings

If you need builds triggered by changes outside the docs path, use manual rebuilds or CI webhooks.