Monorepo Support
Configure Jamdesk for documentation in monorepos
Jamdesk works seamlessly with monorepos. Keep your documentation alongside your code and deploy automatically.
What is a Monorepo?
A monorepo is a single repository containing multiple projects or packages:
my-company/
├── apps/
│ ├── web/
│ └── mobile/
├── packages/
│ ├── ui/
│ └── utils/
└── docs/ # Documentation lives here
├── docs.json
└── introduction.mdx
Configuring the Docs Path
When your docs.json isn't in the repository root, specify its location in project settings:
Go to your project in the Jamdesk dashboard and click Settings.
Under Repository, find the Docs Path field.
Enter the path to the directory containing docs.json:
| Monorepo Structure | Docs Path |
|---|---|
docs/docs.json | docs |
packages/docs/docs.json | packages/docs |
apps/website/docs/docs.json | apps/website/docs |
Click Save and trigger a rebuild to apply the changes.
Common Monorepo Patterns
Dedicated docs directory
monorepo/
├── packages/
├── apps/
└── docs/ # Docs path: docs
├── docs.json
├── introduction.mdx
└── guides/
Docs package
monorepo/
├── packages/
│ ├── core/
│ ├── cli/
│ └── docs/ # Docs path: packages/docs
│ ├── docs.json
│ └── pages/
└── apps/
Inside an app
monorepo/
├── apps/
│ └── website/
│ ├── src/
│ └── docs/ # Docs path: apps/website/docs
│ ├── docs.json
│ └── introduction.mdx
└── packages/
Subdirectory in root
monorepo/
├── src/
├── tests/
└── documentation/ # Docs path: documentation
├── docs.json
└── getting-started.mdx
Asset Paths in Monorepos
When your docs are in a subdirectory, asset paths in docs.json are relative to that directory:
{
"logo": {
"light": "/images/logo.svg"
},
"favicon": "/images/favicon.svg"
}This references packages/docs/images/logo.svg, not the repository root.
Internal Links
Internal links work the same regardless of monorepo structure. Use paths relative to your docs directory:
[See the API guide](/guides/api)
[Installation steps](/getting-started#installation)
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 relevant.
If you need to rebuild when other packages change (e.g., generated API docs), use a manual rebuild or webhook trigger.
Workspace Tools Compatibility
Jamdesk works with all major monorepo tools:
| Tool | Supported |
|---|---|
| npm workspaces | ✅ |
| Yarn workspaces | ✅ |
| pnpm workspaces | ✅ |
| Turborepo | ✅ |
| Nx | ✅ |
| Lerna | ✅ |
No special configuration is needed. Just set the docs path correctly.
Troubleshooting
"docs.json not found" error
Verify the docs path matches your repository structure:
- Check the exact path in your repository
- Ensure
docs.jsonexists at that location - Path should not include
docs.jsonitself (usedocsnotdocs/docs.json)
Assets not loading
Confirm asset paths are 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"
Changes not triggering builds
Ensure you're modifying files within the configured docs path. Changes outside that directory won't trigger automatic builds.