Skip to content

docs: restructure docs site into tab-based navigation - #10855

Merged
dagil-nvidia merged 27 commits into
ai-dynamo:mainfrom
Jont828:dynamo-full-docs-refactor
Jul 27, 2026
Merged

docs: restructure docs site into tab-based navigation#10855
dagil-nvidia merged 27 commits into
ai-dynamo:mainfrom
Jont828:dynamo-full-docs-refactor

Conversation

@Jont828

@Jont828 Jont828 commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Summary

Restructure the Dynamo documentation site from a single flat sidebar into tab-based navigation, implementing the information-architecture overhaul tracked in ai-dynamo/enhancements#89.

The docs are split into top-level tabs — Home, User Guide, Developer Guide, Recipes, Reference, Blog, Community — so tutorial content, knowledge-bank/reference content, and developer content no longer share one undifferentiated sidebar. Because Fern derives page slugs from navigation titles (not file paths), URL continuity is handled by an explicit redirect table rebuilt against the live URL inventory: every currently-live URL resolves on the new site (357 redirects, verified with fern check and an independent resolver pass).

Site preview https://ai-dynamo-preview-78f5d451-61a5-431d-868a-85deb9dbaa32.docs.buildwithfern.com/dynamo

Highlights:

  • New tab bar (fern/docs.yml + docs/index.yml): Home / User Guide / Developer Guide / Recipes / Reference / Blog / Community, each with an icon.
  • Landing page: new getting-started/introduction.mdx Home page acting as a navigable front door.
  • User Guide consolidates Getting Started, Model Deployment (Kubernetes + Local), Operations, Feature Benchmarks, Knowledge Base (Concepts/Components/Backends), Use Cases, and Integrations.
  • Developer Guide segregates contributing, building from source, custom backends, mocker, and local K8s dev tooling (Minikube/Tilt).
  • Reference tab consolidates the former Support Matrix + Feature Matrix into a single compatibility.md, plus Release Artifacts, Examples, and Glossary.
  • Redirects added in fern/docs.yml so existing URLs (support-matrix, feature-matrix, introduction, blog→digest, K8s section reshuffles) keep resolving.

Relationship to the DEP

This PR is the implementation of ai-dynamo/enhancements#89 (Documentation Structure Overhaul). The DEP has been updated to reflect the tab-based model adopted here (the original DEP draft proposed a single-sidebar reorganization; the tab structure supersedes it).

Notes

This supersedes #9239, which was opened from this branch before it was rebased and reflected the earlier flat-sidebar approach. Details of the structure are still being finalized — feedback on the tab grouping and section placement is welcome.

Test plan

  • Fern docs site builds (fern generate/preview) and renders all tabs
  • All sidebar and cross-tab links resolve; no broken internal links
  • Redirects in fern/docs.yml resolve old URLs to their new locations
  • Recipes and Feature Benchmarks catalog pages render correctly

Summary by CodeRabbit

  • Documentation
    • Added feature compatibility matrices for SGLang, TensorRT-LLM, and vLLM backends
    • Added comprehensive compatibility overview page with platform and backend version support
    • Added community landing page with contribution guidelines and links
    • Added known issues documentation for TensorRT-LLM with mitigations
    • Reorganized documentation structure for improved navigation

Maintainer additions (2026-07-27)

Maintainers pushed 6 commits (d09b8e5c6..b49eb74fe) fixing: the failing operator check (regenerated codegen outputs), release-pipeline safeguards restored from main (#11140 tag-faithful snapshots, release validation, force_rebuild, pinned toolchain, locked npm deps), dependency-bump automation retargeted to releases.data.ts, CODEOWNERS globs for the new layout, ~130 broken relative links, 5 docs dropped in the rebase, 27 orphaned pages wired into nav, zh-CN localization restored, the full redirect-table rebuild described above, and SRI pins on CDN assets. Details in the PR comments.

@Jont828
Jont828 requested a review from a team as a code owner June 23, 2026 01:41
@copy-pr-bot

copy-pr-bot Bot commented Jun 23, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot added external-contribution Pull request is from an external contributor docs documentation Improvements or additions to documentation labels Jun 23, 2026
@coderabbitai

coderabbitai Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

The PR restructures Dynamo documentation by consolidating the separate support-matrix and feature-matrix reference pages into a single compatibility.md page, adds Feature Interactions sections to each backend README, introduces a new introduction.mdx hub page and community landing page, reorganizes the docs/index.yml tab navigation, and updates Fern instance URL, organization name, and redirects.

Changes

Documentation Restructure

Layer / File(s) Summary
Fern org rename and instance URL
fern/fern.config.json, fern/docs.yml
organization field changed from "nvidia" to "ai-dynamo" and docs instance URL updated to ai-dynamo.docs.buildwithfern.com.
Redirect consolidation
fern/docs.yml
All support-matrix and feature-matrix redirect sources are consolidated to /dynamo/dev/reference/compatibility; new tab-split redirects added for introduction, blog, and benchmarks paths.
Navigation tree restructure
docs/index.yml
Old tabs replaced with a new set (home, user-guide, developer-guide, recipes, reference, blog, community); user-guide expanded with Operations, Observability Reference, and a Knowledge Base containing Concepts, Components, Backends, Use Cases, and Integrations; developer-guide, reference, blog, and community tabs reshaped.
Consolidated compatibility page
docs/getting-started/compatibility.md, docs/reference/support-matrix.md (removed), docs/reference/feature-matrix.md (removed)
New compatibility.md created with At-a-Glance release summary, backend dependency/CUDA/driver tables, cross-backend feature comparison matrix, and per-backend (vLLM, SGLang, TensorRT-LLM) feature support tables with caveats. The two prior reference files are removed.
Backend Feature Interactions sections and known issue
docs/backends/vllm/README.md, docs/backends/sglang/README.md, docs/backends/trtllm/README.md, docs/backends/trtllm/trtllm-known-issues.md
Feature Interactions compatibility matrix section added to each backend README; new known-issues entry added for Amazon Linux 2023 hang with --network host and its mpi4py mitigation.
New introduction hub, community page, and about rename
docs/getting-started/introduction.mdx, docs/community/README.md, docs/getting-started/about.md, docs/getting-started/about.zh-CN.md
introduction.mdx added as a full navigation hub with installation, deploy/operate, knowledge base, build-with, and extend/reference card sections. Community landing page created. about.md title changed to "About Dynamo"; zh-CN language switcher updated to link to ./about.md.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is substantial, but it omits the required 'Where should the reviewer start?' section and the template-mandated Related Issues block. Add the missing sections from the template, including reviewer-start guidance and either a Closes/Relates issue link or the no-issue confirmation checkbox.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: restructuring documentation from flat sidebar to tab-based navigation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/getting-started/about.md (1)

195-195: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Update legacy support-matrix link to the consolidated compatibility page.

Line 195 links to ../reference/support-matrix.md, which is the old path. After consolidation, this should point to the new compatibility page. Update both the link target and the link text.

🔗 Proposed fix
-  [Support Matrix](../reference/support-matrix.md) -- Check hardware and engine compatibility.
+  [Compatibility](../getting-started/compatibility.md) -- Check hardware and engine compatibility.

(Or if compatibility.md is at reference/compatibility.md, adjust the path accordingly.)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/getting-started/about.md` at line 195, The link on line 195 in the
about.md file references the old support-matrix.md path at
`../reference/support-matrix.md`. Update this link to point to the new
consolidated compatibility page by changing the link target to
`../reference/compatibility.md` and update the link text from "Support Matrix"
to "Compatibility" or an appropriate name that matches the new page structure.
Verify the exact path and page name match the actual consolidated documentation
location.
🧹 Nitpick comments (1)
docs/getting-started/compatibility.md (1)

76-127: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add missing reference link definitions or convert to inline URLs.

The source citations on lines 76, 84, 89, 95, 103, 114, and 122 use reference-link syntax (e.g., [docs/backends/vllm/README.md][vllm-readme]) but the referenced labels ([vllm-readme], [mm-kv-routing], [vllm-spec], [sglang-readme], [mm-sglang], [trtllm-readme], [mm-trtllm]) are never defined. This triggers markdown linting warnings (MD052).

Recommendation: Follow the pattern used in the backend Feature Interactions sections (docs/backends/vllm/README.md, etc.) and convert these source citations to inline URLs, which is clearer and avoids forward-reference complexity. For example:

Instead of:

*Source: [docs/backends/vllm/README.md][vllm-readme]*

Use:

*Source: [docs/backends/vllm/README.md](../../backends/vllm/README.md)*
🔗 Proposed fix: convert reference links to inline URLs
-*Source: [docs/backends/vllm/README.md][vllm-readme]*
+*Source: [docs/backends/vllm/README.md](../../backends/vllm/README.md)*

-| Feature                   | Supported? | Notes                                                                                                                                        |
+| Feature                   | Supported? | Notes                                                                                                                                         |
 | **Disaggregated Serving** |     ✅      | Prefill/decode separation with NIXL KV transfer                                                                                              |
 | **KV-Aware Routing**      |     ✅      |                                                                                                                                              |
-| **Speculative Decoding**  |     ✅      | Eagle3 ([Source][vllm-spec])                                                                                                                 |
+| **Speculative Decoding**  |     ✅      | Eagle3 ([Source](../../features/speculative-decoding/speculative-decoding-vllm.md))                                                           |

-*Source: [docs/backends/sglang/README.md][sglang-readme]*
+*Source: [docs/backends/sglang/README.md](../../backends/sglang/README.md)*

-| **Multimodal**            |     ✅      | Image + video. ✗ Not compatible with KV-aware routing. Disagg patterns: EPD, E/PD, E/P/D (not traditional EP/D) ([Source][mm-sglang]) |
+| **Multimodal**            |     ✅      | Image + video. ✗ Not compatible with KV-aware routing. Disagg patterns: EPD, E/PD, E/P/D (not traditional EP/D) ([Source](../../features/multimodal/multimodal-sglang.md)) |

-*Source: [docs/backends/trtllm/README.md][trtllm-readme]*
+*Source: [docs/backends/trtllm/README.md](../../backends/trtllm/README.md)*

Also remove the unreferenced definitions at the end (lines 129–137 already properly define the doc links, so you'd keep those and just convert the source citations above to inline URLs).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/getting-started/compatibility.md` around lines 76 - 127, The source
citations in the compatibility.md file use undefined reference-link syntax
(e.g., [vllm-readme], [mm-kv-routing], [sglang-readme], [trtllm-readme],
[mm-sglang], [mm-trtllm], [vllm-spec]) that are never defined, causing markdown
linting warnings. Convert all these reference-link citations throughout the
vLLM, SGLang, and TensorRT-LLM backend feature tables to inline URLs using the
format [text](path/to/file) or [Source](path/to/file), referencing the
appropriate backend documentation files relative to the current file location.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/getting-started/introduction.mdx`:
- Around line 203-205: The Reference Card component is linking to a legacy path
that redirects to a canonical consolidated page. Update the href attribute of
the Card component with title "Reference" from the legacy
`/dynamo/dev/reference/support-matrix` path to the canonical
`/dynamo/dev/reference/compatibility` path. Additionally, update the card's
description text from "Support and feature matrices, release artifacts, and
glossary" to reflect the consolidated nature of the page per the canonical path
name.

In `@docs/index.yml`:
- Around line 535-574: The YAML structure has incorrect indentation causing a
syntax error. The `layout:` block that follows the `- tab: recipes` entry needs
to be indented as a child property of the recipes tab (it should be indented 2-4
spaces deeper than the tab declaration). Additionally, remove or clarify the
orphaned `layout:` block that appears at the end of the recipes section, as it
appears to be a duplicate or misplaced entry. If the developer-guide tab
requires its own layout block, add it with proper indentation under that tab
declaration. Ensure each tab entry has its layout block properly nested as an
indented child property.

---

Outside diff comments:
In `@docs/getting-started/about.md`:
- Line 195: The link on line 195 in the about.md file references the old
support-matrix.md path at `../reference/support-matrix.md`. Update this link to
point to the new consolidated compatibility page by changing the link target to
`../reference/compatibility.md` and update the link text from "Support Matrix"
to "Compatibility" or an appropriate name that matches the new page structure.
Verify the exact path and page name match the actual consolidated documentation
location.

---

Nitpick comments:
In `@docs/getting-started/compatibility.md`:
- Around line 76-127: The source citations in the compatibility.md file use
undefined reference-link syntax (e.g., [vllm-readme], [mm-kv-routing],
[sglang-readme], [trtllm-readme], [mm-sglang], [mm-trtllm], [vllm-spec]) that
are never defined, causing markdown linting warnings. Convert all these
reference-link citations throughout the vLLM, SGLang, and TensorRT-LLM backend
feature tables to inline URLs using the format [text](path/to/file) or
[Source](path/to/file), referencing the appropriate backend documentation files
relative to the current file location.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 49088f19-7491-4c31-947f-b3f4cc6cbd71

📥 Commits

Reviewing files that changed from the base of the PR and between ca4a649 and f960f83.

📒 Files selected for processing (14)
  • docs/backends/sglang/README.md
  • docs/backends/trtllm/README.md
  • docs/backends/trtllm/trtllm-known-issues.md
  • docs/backends/vllm/README.md
  • docs/community/README.md
  • docs/getting-started/about.md
  • docs/getting-started/about.zh-CN.md
  • docs/getting-started/compatibility.md
  • docs/getting-started/introduction.mdx
  • docs/index.yml
  • docs/reference/feature-matrix.md
  • docs/reference/support-matrix.md
  • fern/docs.yml
  • fern/fern.config.json
💤 Files with no reviewable changes (2)
  • docs/reference/feature-matrix.md
  • docs/reference/support-matrix.md

Comment thread docs/getting-started/introduction.mdx Outdated
Comment on lines +203 to +205
<Card title="Reference" icon="regular table-cells" href="/dynamo/dev/reference/support-matrix">
Support and feature matrices, release artifacts, and glossary.
</Card>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Update Reference card link to the canonical compatibility page path.

Line 203 links to /dynamo/dev/reference/support-matrix, which is a legacy path that will be redirected to /dynamo/dev/reference/compatibility. For new pages, link directly to the canonical consolidated path instead. Also, update the card text from "Support and feature matrices" to reflect the consolidated name.

🔗 Proposed fix
   <Card title="Reference" icon="regular table-cells" href="/dynamo/dev/reference/support-matrix">
-    Support and feature matrices, release artifacts, and glossary.
+    Compatibility, release artifacts, and glossary.
   </Card>

Change href to:

-  href="/dynamo/dev/reference/support-matrix">
+  href="/dynamo/dev/reference/compatibility">
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<Card title="Reference" icon="regular table-cells" href="/dynamo/dev/reference/support-matrix">
Support and feature matrices, release artifacts, and glossary.
</Card>
<Card title="Reference" icon="regular table-cells" href="/dynamo/dev/reference/compatibility">
Compatibility, release artifacts, and glossary.
</Card>
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/getting-started/introduction.mdx` around lines 203 - 205, The Reference
Card component is linking to a legacy path that redirects to a canonical
consolidated page. Update the href attribute of the Card component with title
"Reference" from the legacy `/dynamo/dev/reference/support-matrix` path to the
canonical `/dynamo/dev/reference/compatibility` path. Additionally, update the
card's description text from "Support and feature matrices, release artifacts,
and glossary" to reflect the consolidated nature of the page per the canonical
path name.

Comment thread docs/index.yml Outdated
@Jont828
Jont828 temporarily deployed to external_collaborator June 24, 2026 20:57 — with GitHub Actions Inactive
@dynamo-ops

Copy link
Copy Markdown
Contributor

/ok to test 9bbec69

@datadog-official

This comment has been minimized.

@akshatha-k
akshatha-k temporarily deployed to external_collaborator June 25, 2026 18:05 — with GitHub Actions Inactive
@akshatha-k
akshatha-k force-pushed the dynamo-full-docs-refactor branch from ec9ac99 to 9bbec69 Compare June 25, 2026 18:08
@akshatha-k
akshatha-k temporarily deployed to external_collaborator June 25, 2026 18:08 — with GitHub Actions Inactive
@dynamo-ops

Copy link
Copy Markdown
Contributor

/ok to test 9bbec69

@akshatha-k
akshatha-k temporarily deployed to external_collaborator June 25, 2026 18:31 — with GitHub Actions Inactive
@akshatha-k
akshatha-k temporarily deployed to external_collaborator June 25, 2026 21:43 — with GitHub Actions Inactive
@Jont828
Jont828 temporarily deployed to external_collaborator June 29, 2026 18:46 — with GitHub Actions Inactive
@Jont828
Jont828 temporarily deployed to external_collaborator June 29, 2026 19:57 — with GitHub Actions Inactive
@Jont828
Jont828 temporarily deployed to external_collaborator June 29, 2026 20:15 — with GitHub Actions Inactive
@Jont828
Jont828 temporarily deployed to external_collaborator July 1, 2026 01:54 — with GitHub Actions Inactive
@Jont828
Jont828 temporarily deployed to external_collaborator July 2, 2026 22:41 — with GitHub Actions Inactive
@Jont828
Jont828 temporarily deployed to external_collaborator July 3, 2026 01:13 — with GitHub Actions Inactive
@Jont828
Jont828 temporarily deployed to external_collaborator July 3, 2026 04:10 — with GitHub Actions Inactive
@alimaazamat
alimaazamat temporarily deployed to external_collaborator July 6, 2026 18:50 — with GitHub Actions Inactive
@alimaazamat
alimaazamat force-pushed the dynamo-full-docs-refactor branch from 2a00a24 to ad019a5 Compare July 6, 2026 19:00
@alimaazamat
alimaazamat temporarily deployed to external_collaborator July 6, 2026 19:00 — with GitHub Actions Inactive
Restore the v0.8.1.post1/2/3 per-post-train TensorRT-LLM pins (plus
v0.7.0.post1 and v0.6.1.post1 rows) and the per-backend pairwise
feature-interaction tables that the compatibility consolidation
dropped; regenerate the llms twins.

Signed-off-by: Dan Gil <dagil@nvidia.com>
Fern callout components in .mdx pages, GitHub-style blockquote
admonitions in .md pages (the rule the fern-components reference
already states); update the style guide and AGENTS.md accordingly and
convert all violating pages in both directions without rewording any
admonition body.

Signed-off-by: Dan Gil <dagil@nvidia.com>
Commit the red/green check that proves bump_dependency.py rewrites
exactly the MAIN_TOT TensorRT-LLM pin, wire it into the dep-upgrade
workflow ahead of the real bump, and delete the retired
build_install_selector.py stub (nothing references it).

Signed-off-by: Dan Gil <dagil@nvidia.com>
@dagil-nvidia

Copy link
Copy Markdown
Collaborator

/ok to test e735722

1 similar comment
@dynamo-ops

Copy link
Copy Markdown
Contributor

/ok to test e735722

Signed-off-by: Dan Gil <dagil@nvidia.com>
@dynamo-ops

Copy link
Copy Markdown
Contributor

/ok to test c7f179b

1 similar comment
@dagil-nvidia

Copy link
Copy Markdown
Collaborator

/ok to test c7f179b

Signed-off-by: Dan Gil <dagil@nvidia.com>
@dagil-nvidia

Copy link
Copy Markdown
Collaborator

/ok to test 5746657

1 similar comment
@dynamo-ops

Copy link
Copy Markdown
Contributor

/ok to test 5746657

A global package-lock.json gitignore rule silently excluded
.github/scripts/events/package-lock.json from the earlier commit,
so the preview job's npm ci found no lockfile. Add a scoped
exception and commit the lockfile.

Signed-off-by: Dan Gil <dagil@nvidia.com>
@dagil-nvidia

Copy link
Copy Markdown
Collaborator

/ok to test 0b53b6f

1 similar comment
@dynamo-ops

Copy link
Copy Markdown
Contributor

/ok to test 0b53b6f

Fern matches a bare path (e.g. /dynamo/blog) against its :slug*
wildcard sibling and substitutes zero segments as a literal ':slug*',
producing 404/500s (verified on the Fern preview). Order the exact
bare-path rules before their wildcard siblings for the blog, digest,
recipes, and connect families so bare paths hit real destinations.

Signed-off-by: Dan Gil <dagil@nvidia.com>
@dagil-nvidia

Copy link
Copy Markdown
Collaborator

/ok to test 0d183c8

1 similar comment
@dynamo-ops

Copy link
Copy Markdown
Contributor

/ok to test 0d183c8

@dynamo-ops

Copy link
Copy Markdown
Contributor

/ok to test e36f96c

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

actions backend::sglang Relates to the sglang backend backend::trtllm Relates to the trtllm backend backend::vllm Relates to the vllm backend deployment::k8s Relates to dynamo deployment in kubernetes docs documentation Improvements or additions to documentation external-contribution Pull request is from an external contributor frontend `python -m dynamo.frontend` and `dynamo-run in=http|text|grpc` planner router Relates to routing, KV-aware routing, etc. size/XXL xpu

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants