docs.json and content, and Mintlify merges them into one site at build time. Use multi-source deployments when documentation for related products lives in separate repositories but should appear under a single domain and navigation tree.
How sources are merged
When a deployment has more than one source, Mintlify fetches each source’sdocs.json during every build and merges them into a single navigation.products tree:
- The first source listed on the deployment is the primary source. Its
docs.jsonprovides the top-level configuration for the merged site, includingname,theme,colors,logo,favicon,redirects, and any other top-level fields. - Additional sources contribute only their
navigation. Other top-level fields in those configs (for example,redirectsortheme) are ignored, and a warning is logged at build time listing the ignored keys. - Each source’s
navigationbecomes one entry in the mergednavigation.productsarray. The product’s display name is the source’s label, or itsdocs.jsonnameif no label is set.
docs.json that uses products as its top-level navigation division.
A source’s
docs.json cannot itself use navigation.products. Products only exist at the merged top level, so each source must use a non-product navigation (for example, groups, tabs, versions, or anchors).Mount paths
Every source on a multi-source deployment must have a non-empty mount path. The mount path is the URL prefix that the source’s content is served under, and it is prepended to every reference in that source’sdocs.json during the merge:
- Page paths in
pages,root, andhreffields. For example,quickstartfrom a source mounted atengresolves toeng/quickstart. - OpenAPI and AsyncAPI references in
openapiandasyncapifields, includingsourceanddirectoryproperties. hrefvalues in global navigation entries such asanchorsandtabs.
https://…) and in-page anchors (#section) are left unchanged. Mount paths cannot overlap between sources on the same deployment.
The resulting URLs in your live site include the mount path. A page authored as quickstart.mdx in a source mounted at eng is served at /eng/quickstart.
Example
A deployment with two sources — one mounted atplatform, one mounted at eng — produces a merged config that looks like this:
Primary source docs.json (mounted at platform):
docs.json (mounted at eng):
Build failures
The build fails and the deployment is not updated if:- Any source is missing a
docs.json, or a source’sdocs.jsonis invalid. - Any source has an empty mount path.
- Two sources have overlapping mount paths.
- A source’s
navigationusesproductsat the top level.
Related
- Monorepo setup — pointing a single source at a subdirectory of a larger repository.
- Products — the navigation division that multi-source deployments produce.