diff --git a/docs/mkdocs/javascript/slack_and_forum.js b/docs/mkdocs/javascript/slack_and_forum.js
new file mode 100644
index 000000000000..9a9233223836
--- /dev/null
+++ b/docs/mkdocs/javascript/slack_and_forum.js
@@ -0,0 +1,56 @@
+/**
+ * slack_and_forum.js
+ *
+ * Adds a custom Slack and Forum button to the MkDocs Material header.
+ *
+ */
+
+window.addEventListener('DOMContentLoaded', () => {
+ const headerInner = document.querySelector('.md-header__inner');
+
+ if (headerInner) {
+ const slackButton = document.createElement('button');
+ slackButton.className = 'slack-button';
+ slackButton.title = 'Join us on Slack';
+ slackButton.style.border = 'none';
+ slackButton.style.background = 'transparent';
+ slackButton.style.cursor = 'pointer';
+
+ slackButton.innerHTML = `
+
+ `;
+
+ slackButton.addEventListener('click', () => {
+ window.open('https://slack.vllm.ai', '_blank', 'noopener');
+ });
+
+ const forumButton = document.createElement('button');
+ forumButton.className = 'forum-button';
+ forumButton.title = 'Join the Forum';
+ forumButton.style.border = 'none';
+ forumButton.style.background = 'transparent';
+ forumButton.style.cursor = 'pointer';
+
+ forumButton.innerHTML = `
+
+ `;
+
+ forumButton.addEventListener('click', () => {
+ window.open('https://discuss.vllm.ai/', '_blank', 'noopener');
+ });
+
+ const githubSource = document.querySelector('.md-header__source');
+ if (githubSource) {
+ githubSource.parentNode.insertBefore(slackButton, githubSource.nextSibling);
+ githubSource.parentNode.insertBefore(forumButton, slackButton.nextSibling);
+ }
+ }
+});
diff --git a/docs/mkdocs/stylesheets/extra.css b/docs/mkdocs/stylesheets/extra.css
index 220657f83d5f..248711f491b9 100644
--- a/docs/mkdocs/stylesheets/extra.css
+++ b/docs/mkdocs/stylesheets/extra.css
@@ -108,3 +108,29 @@ body[data-md-color-scheme="slate"] .md-nav__item--section > label.md-nav__link .
.md-content__button-wrapper a:hover {
color: var(--md-accent-fg-color);
}
+
+/* Slack and Forum css */
+.slack-button,
+.forum-button {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ margin-left: 0.4rem;
+ height: 24px;
+}
+
+.slack-button img {
+ height: 18px;
+ filter: none !important;
+}
+
+.slack-button:hover,
+.forum-button:hover {
+ opacity: 0.7;
+}
+
+.forum-button svg {
+ height: 28px;
+ opacity: 0.9;
+ transform: translateY(2px);
+}
diff --git a/mkdocs.yaml b/mkdocs.yaml
index 9fb3fed8b8ac..45b6ffadbeb7 100644
--- a/mkdocs.yaml
+++ b/mkdocs.yaml
@@ -127,6 +127,7 @@ extra_javascript:
- mkdocs/javascript/run_llm_widget.js
- https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML
- mkdocs/javascript/edit_and_feedback.js
+ - mkdocs/javascript/slack_and_forum.js
# Makes the url format end in .html rather than act as a dir
# So index.md generates as index.html and is available under URL /index.html