From 3da36832f92e6f64c0ad52e243e79382ffb3eb90 Mon Sep 17 00:00:00 2001 From: Andrey Cheptsov Date: Fri, 27 Mar 2026 12:38:58 +0100 Subject: [PATCH 01/14] [Landing] Update headings and descriptions for clarity in README, installation, and quickstart guides to amplify agentic orchestration (WIP) --- README.md | 2 +- docs/docs/installation.md | 2 +- docs/docs/quickstart.md | 2 +- docs/overrides/home.html | 36 +++++++++++++++++++----------------- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 016091186..ad6d33933 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ Configuration is updated at ~/.dstack/config.yml -### Install AI agent skills +### Install agent skills Install [skills](https://skills.sh/dstackai/dstack/dstack) to help AI agents use the `dstack` CLI and edit configuration files. diff --git a/docs/docs/installation.md b/docs/docs/installation.md index 959cf89ce..01b9ca5a7 100644 --- a/docs/docs/installation.md +++ b/docs/docs/installation.md @@ -195,7 +195,7 @@ Configuration is updated at ~/.dstack/config.yml This configuration is stored in `~/.dstack/config.yml`. -## Install AI agent skills +## Install agent skills Install [skills](https://skills.sh/dstackai/dstack/dstack) to help AI agents use the `dstack` CLI and edit configuration files. diff --git a/docs/docs/quickstart.md b/docs/docs/quickstart.md index 19331b578..4cdecae5e 100644 --- a/docs/docs/quickstart.md +++ b/docs/docs/quickstart.md @@ -6,7 +6,7 @@ description: Quick guide to creating fleets and submitting runs # Quickstart !!! info "Prerequsites" - Before using `dstack`, ensure you've [installed](installation.md) the server and the CLI. + Before using `dstack`, ensure you've [installed](installation.md) the server, CLI, and agent skills. ## Create a fleet diff --git a/docs/overrides/home.html b/docs/overrides/home.html index a9aec887a..7ee9f3785 100644 --- a/docs/overrides/home.html +++ b/docs/overrides/home.html @@ -17,8 +17,9 @@ + {% endblock %} {% block content %} @@ -126,65 +152,46 @@

A unified control plane for compute orchestration

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - +
+
type: fleet
+name: my-fleet
 
-                        
-                            
-                        
+# Allow provisioning of up to 10 instances
+nodes: 0..10
+placement: cluster
 
-                        
-                            
-                        
-
-                        
-                            
-                        
+# Deprovision instances if idle
+idle_duration: 1h
 
-                        
-                            
-                        
-
-                        
-                            
-                        
+resources:
+  gpu: H100:8
-
-

Natively works with every GPU cloud

+
+

Provision GPUs across clouds

+ +
+ + + + + + + + + + + + +
+

- dstack natively integrates with leading GPU clouds for fast, efficient provisioning. + dstack provisions GPU VMs directly through cloud APIs—no Kubernetes or middleware needed.

- +

- It can provision and manage GPU VMs directly through cloud APIs, or operate through Kubernetes when required. + For teams already running Kubernetes, it can be used as a backend too.

@@ -204,18 +211,18 @@

Natively works with every GPU cloud

-

Easy to use with on-prem clusters

+

Bring your own clusters

- If you already run Kubernetes on-prem, connect your cluster to dstack using the Kubernetes backend. + Have bare-metal servers or pre-provisioned VMs? Use SSH fleets to connect them to dstack and orchestrate GPUs directly—no extra infrastructure required.

- For bare-metal servers or VMs without Kubernetes, use SSH fleets to orchestrate GPUs directly. + Just provide SSH credentials and host addresses, and dstack handles the rest.

- +

- + SSH fleets Easy to use with on-prem clusters fill-rule="nonzero" fill="currentColor" class="fill-main"> - - - Kubernetes - - - -

- +
+
type: fleet
+name: my-fleet
+
+placement: cluster
+
+ssh_config:
+  user: ubuntu
+  identity_file: ~/.ssh/id_rsa
+  hosts:
+    - 3.255.177.51
+    - 3.255.177.52
+
+
+
+
@@ -246,12 +258,26 @@

Easy to use with on-prem clusters

- +
+
type: dev-environment
+name: vscode
+
+python: "3.12"
+
+ide: vscode
+
+resources:
+  gpu: 24GB
+
+
+
+
+
+
-

Launch agentic dev environments

+

Develop and experiment on GPUs

Before training or deploying models, ML engineers need interactive GPU access to experiment and debug.

@@ -275,7 +301,7 @@

Launch agentic dev environments

-

Submit training and batch jobs

+

Train at any scale

Run training or batch workloads on a single GPU, or scale to multi-GPU and multi-node clusters using simple task configurations. @@ -296,8 +322,32 @@

Submit training and batch jobs

- +
+
type: task
+name: train-distrib
+
+nodes: 2
+
+python: 3.12
+env:
+  - NCCL_DEBUG=INFO
+files: .
+commands:
+  - uv pip install -r requirements.txt
+  - |
+    torchrun \
+      --nproc-per-node=$DSTACK_GPUS_PER_NODE \
+      --node-rank=$DSTACK_NODE_RANK \
+      --nnodes=$DSTACK_NODES_NUM \
+      --master-addr=$DSTACK_MASTER_NODE_IP \
+      --master-port=12345 \
+      multinode.py 50 10
+
+resources:
+  gpu: H100:8
+  shm_size: 24GB
+
+
@@ -305,12 +355,34 @@

Submit training and batch jobs

- +
+
type: service
+name: qwen3-235b
+
+image: lmsysorg/sglang
+env:
+  - HF_TOKEN
+  - MODEL_ID=Qwen/Qwen3-235B-A22B-FP8
+commands:
+  - |
+    python3 -m sglang.launch_server \
+      --model-path $MODEL_ID \
+      --tp $DSTACK_GPUS_NUM \
+      --reasoning-parser qwen3 \
+      --port 8000
+
+port: 8000
+model: Qwen/Qwen3-235B-A22B-FP8
+
+resources:
+  gpu: H100:4
+  disk: 500GB..
+
+
-

Deploy model inference and apps

+

Serve models in production

With dstack, you can deploy models as secure, From 67c16f0d6e89fae2a1b24adbc54b4581bcca7284 Mon Sep 17 00:00:00 2001 From: Andrey Cheptsov Date: Sun, 29 Mar 2026 17:09:22 +0200 Subject: [PATCH 04/14] Add code carousel for interactive snippets and enhance landing page content --- docs/assets/stylesheets/landing.css | 70 +++++- docs/overrides/home.html | 356 +++++++++++++++++++++++----- 2 files changed, 370 insertions(+), 56 deletions(-) diff --git a/docs/assets/stylesheets/landing.css b/docs/assets/stylesheets/landing.css index 1fadedc70..8033a8665 100644 --- a/docs/assets/stylesheets/landing.css +++ b/docs/assets/stylesheets/landing.css @@ -927,7 +927,8 @@ color: #e37cff; } -#get-started-code-snippet[data-termynal] { +#get-started-code-snippet[data-termynal], +#get-started-claude-snippet[data-termynal] { font-size: 14px !important; } @@ -1037,6 +1038,73 @@ width: 600px } +.code-carousel__slides { + position: relative; + display: grid; +} + +.code-carousel__slide { + grid-area: 1 / 1; + display: none; +} + +.code-carousel__slide.active { + display: block; +} + +.code-carousel__slide > [data-termynal], +.code-carousel__slide[data-termynal] { + margin: 0 !important; +} + +.code-carousel .code-carousel__slide[editor-title] pre { + margin: 0; +} + +.code-carousel .code-carousel__slide[editor-title] pre > code { + padding-top: 70px; +} + +@media screen and (max-width: 44.9375em) { + .code-carousel { + margin-left: -0.8rem; + margin-right: -0.8rem; + } + + .code-carousel .code-carousel__slide[editor-title] { + margin-left: 0 !important; + margin-right: 0 !important; + } +} + +.code-carousel__dots { + display: flex; + justify-content: center; + gap: 8px; + margin-top: 12px; +} + +.code-carousel__dot { + width: 10px; + height: 10px; + display: block; + flex: 0 0 auto; + border-radius: 50%; + background: transparent; + border: 0.5px solid #000; + box-sizing: border-box; + cursor: pointer; +} + +.code-carousel__dot.active { + border-color: #000; + background: #000; +} + +.code-carousel__dot:hover { + border-color: #000; +} + .tx-landing [editor-title] pre { visibility: hidden; } diff --git a/docs/overrides/home.html b/docs/overrides/home.html index 2b036b6b8..f5d411f86 100644 --- a/docs/overrides/home.html +++ b/docs/overrides/home.html @@ -29,24 +29,6 @@ loop: true, }); - + {% endblock %} {% block content %} @@ -83,7 +245,7 @@

Agentic orchestration

- dstack is an open-source control plane for agents and engineers to provision compute and run training, inference, across GPU vendors, GPU clouds, Kubernetes, and bare-metal clusters. + dstack is an open-source control plane for agents and engineers to provision compute and run training, inference, across GPU vendors, clouds, Kubernetes, and bare-metal clusters.

@@ -130,7 +292,8 @@

A unified control plane for compute orchestration

- It’s built for containerized workloads and designed for both engineers and agents. No Kubernetes or Slurm hassle required. + It’s built for containerized workloads and designed for both engineers and agents. + No Kubernetes or Slurm hassle required.

@@ -152,24 +315,36 @@

A unified control plane for compute orchestration

-
-
type: fleet
+                    
+
+ +
+
-

Provision GPUs across clouds

+

Provision compute in any GPU cloud

@@ -187,11 +362,16 @@

Provision GPUs across clouds

- dstack provisions GPU VMs directly through cloud APIs—no Kubernetes or middleware needed. + dstack provisions GPU VMs directly through cloud APIs—no Kubernetes needed.

- For teams already running Kubernetes, it can be used as a backend too. + If you already have a Kubernetes cluster, dstack can manage it too. +

+ +

+ Once a backend fleet is created, dstack will let you run + dev environments, tasks, and services on this fleet.

@@ -211,14 +391,19 @@

Provision GPUs across clouds

-

Bring your own clusters

+

Bring your existing GPU clusters

- Have bare-metal servers or pre-provisioned VMs? Use SSH fleets to connect them to dstack and orchestrate GPUs directly—no extra infrastructure required. + Have bare-metal servers or pre-provisioned VMs? Use SSH fleets to connect them to dstack. +

+ +

+ Just provide SSH credentials and host addresses, and dstack creates an SSH fleet.

- Just provide SSH credentials and host addresses, and dstack handles the rest. + Once created, dstack will let you run + dev environments, tasks, and services on this fleet.

@@ -234,12 +419,17 @@

Bring your own clusters

-
-
type: fleet
+                    
                 
@@ -258,33 +456,50 @@

Bring your own clusters

-
-
type: dev-environment
+                    
                 
-

Develop and experiment on GPUs

+

Run development environments

- Before training or deploying models, ML engineers need interactive GPU access to experiment and debug. + If you or your agent need a development environment with a GPU, let dstack create you a dev environment.

-

dstack's dev environments let you connect desktop IDEs such as VS +

If you plan to work with it yourself, you can access it using your desktop IDE such as VS Code, Cursor, and - Windsurf—and their AI agents—directly to cloud or on-prem GPUs. + Windsurf. dstack apply prints both the IDE URL and SSH command.

@@ -301,10 +516,10 @@

Develop and experiment on GPUs

-

Train at any scale

+

Run training or batch jobs at any scale

- Run training or batch workloads on a single GPU, or scale to multi-GPU and multi-node clusters using simple task configurations. + Run training or batch workloads on a single GPU, or scale to multi-GPU and multi-node clusters using simple task configurations. dstack automates cluster provisioning, resource allocation, and job scheduling.

@@ -322,8 +537,10 @@

Train at any scale

-
-
type: task
+                    
                 
@@ -355,8 +580,10 @@

Train at any scale

-
-
type: service
+                    
                 
-

Serve models in production

+

Run high-performance model inference

With dstack, you can deploy models as secure, - auto-scaling, OpenAI-compatible endpoints, integrating with top open-source serving frameworks. + auto-scaling, OpenAI-compatible endpoints, integrating with top open-source serving frameworks + such as SGLang, vLLM, + TensorRT-LLM, or any other.

- dstack supports disaggregated prefill/decode and cache-aware routing, providing + dstack enables Disaggregated Prefill/Decode and cache-aware routing, providing production-grade, optimized inference.

@@ -680,8 +917,17 @@

Get started in minutes

-
- +
@@ -716,7 +962,7 @@

dstack Enterprise

-

Self-hosted with SSO, air-gapped environments, governance, and dedicated support.

+

Self-hosted with SSO, air-gapped environments, and dedicated support.

From 220252f69382ea44ce401e38c31a282f42ad98ff Mon Sep 17 00:00:00 2001 From: Andrey Cheptsov Date: Sun, 29 Mar 2026 17:19:44 +0200 Subject: [PATCH 05/14] Enhance installation documentation and improve carousel functionality on landing page --- README.md | 2 +- docs/docs/installation.md | 2 +- docs/overrides/home.html | 50 +++++++++++++++++++++++++++++++++++++-- 3 files changed, 50 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ad6d33933..348fb4f8d 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,7 @@ Configuration is updated at ~/.dstack/config.yml ### Install agent skills -Install [skills](https://skills.sh/dstackai/dstack/dstack) to help AI agents use the `dstack` CLI and edit configuration files. +Install [`dstack` skills](https://skills.sh/dstackai/dstack/dstack) to help AI agents use the CLI and edit configuration files. ```shell $ npx skills add dstackai/dstack diff --git a/docs/docs/installation.md b/docs/docs/installation.md index 01b9ca5a7..d555f0873 100644 --- a/docs/docs/installation.md +++ b/docs/docs/installation.md @@ -197,7 +197,7 @@ This configuration is stored in `~/.dstack/config.yml`. ## Install agent skills -Install [skills](https://skills.sh/dstackai/dstack/dstack) to help AI agents use the `dstack` CLI and edit configuration files. +Install [`dstack` skills](https://skills.sh/dstackai/dstack/dstack) to help AI agents use the CLI and edit configuration files.
diff --git a/docs/overrides/home.html b/docs/overrides/home.html index f5d411f86..898cdd1e7 100644 --- a/docs/overrides/home.html +++ b/docs/overrides/home.html @@ -83,11 +83,48 @@ return termynal; } + function normalizeCarouselHeight(carousel) { + var slidesWrap = carousel.querySelector('.code-carousel__slides'); + if (!slidesWrap) return; + + var slides = Array.prototype.slice.call(carousel.querySelectorAll('.code-carousel__slide')); + if (!slides.length) return; + + var maxHeight = 0; + + slides.forEach(function(slide) { + var prevDisplay = slide.style.display; + var prevVisibility = slide.style.visibility; + + if (!slide.classList.contains('active')) { + slide.style.display = 'block'; + slide.style.visibility = 'hidden'; + } + + maxHeight = Math.max(maxHeight, slide.scrollHeight, slide.offsetHeight); + + if (!slide.classList.contains('active')) { + slide.style.display = prevDisplay; + slide.style.visibility = prevVisibility; + } + }); + + if (maxHeight > 0) { + slidesWrap.style.minHeight = maxHeight + 'px'; + slides.forEach(function(slide) { + slide.style.minHeight = maxHeight + 'px'; + }); + } + } + // Init termynal instances for carousel slides window._getStartedTermynal = initCarouselTermynal('get-started-code-snippet', [ {type: 'input', value: 'uv tool install "dstack[all]" -U'}, + {delay: 0, value: 'Downloading dstack-0.20.15-py3-none-any.whl', class: 'newline'}, + {type: 'progress', progressPercent: 100, typeDelay: 50}, {delay: 0, value: ' ', class: 'newline'}, {type: 'input', value: 'npx skills add dstackai/dstack'}, + {delay: 0, value: 'Installed skill dstack from dstackai/dstack', class: 'newline'}, {delay: 0, value: ' ', class: 'newline'}, {type: 'input', value: 'dstack server'}, {delay: 0, value: ' ', class: 'newline'}, @@ -112,8 +149,6 @@ {delay: 0, value: ' - Troubleshoot provisioning or connectivity issues', class: 'newline'}, {delay: 0, value: ' ', class: 'newline'}, {delay: 0, value: ' What would you like to do?', class: 'newline'}, - {delay: 0, value: ' ', class: 'newline'}, - {type: 'input', value: ''}, ]); window._fleetTermynal = initCarouselTermynal('fleet-apply-terminal', [ @@ -231,8 +266,19 @@ }); }); + normalizeCarouselHeight(carousel); + setTimeout(function() { + normalizeCarouselHeight(carousel); + }, 350); + timer = setInterval(next, 5000); }); + + window.addEventListener('resize', function() { + document.querySelectorAll('.code-carousel').forEach(function(carousel) { + normalizeCarouselHeight(carousel); + }); + }); }); {% endblock %} From 99590d47d972e0420b433e1c9003b2a8f3f14d77 Mon Sep 17 00:00:00 2001 From: Andrey Cheptsov Date: Sun, 29 Mar 2026 17:55:16 +0200 Subject: [PATCH 06/14] Update landing page title and enhance description for clarity and detail --- docs/index.md | 2 +- docs/overrides/home.html | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/index.md b/docs/index.md index 53b5aaa46..799fbe2cb 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,6 +1,6 @@ --- template: home.html -title: AI container orchestration for AI teams +title: Agentic orchestration for AI infrastructure hide: - navigation - toc diff --git a/docs/overrides/home.html b/docs/overrides/home.html index 898cdd1e7..2b3b29635 100644 --- a/docs/overrides/home.html +++ b/docs/overrides/home.html @@ -291,7 +291,9 @@

Agentic orchestration

- dstack is an open-source control plane for agents and engineers to provision compute and run training, inference, across GPU vendors, clouds, Kubernetes, and bare-metal clusters. + dstack is an open-source control plane for agents and engineers to provision compute and run training, inference, and sandboxes across + NVIDIA, AMD, + TPU, and Tenstorrent GPUs—on clouds, Kubernetes, and bare-metal clusters.

From 6ef5e8ca97516f77612ea7f17392512610d3a446 Mon Sep 17 00:00:00 2001 From: Andrey Cheptsov Date: Sun, 29 Mar 2026 18:04:35 +0200 Subject: [PATCH 07/14] Refine landing page content for clarity and enhance messaging on infrastructure orchestration --- docs/overrides/home.html | 4 ++-- docs/overrides/main.html | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/overrides/home.html b/docs/overrides/home.html index 2b3b29635..7091a796e 100644 --- a/docs/overrides/home.html +++ b/docs/overrides/home.html @@ -293,7 +293,7 @@

dstack is an open-source control plane for agents and engineers to provision compute and run training, inference, and sandboxes across NVIDIA, AMD, - TPU, and Tenstorrent GPUs—on clouds, Kubernetes, and bare-metal clusters. + TPU, and Tenstorrent GPUs—on clouds, Kubernetes, and bare-metal clusters.

@@ -1010,7 +1010,7 @@

dstack Enterprise

-

Self-hosted with SSO, air-gapped environments, and dedicated support.

+

Self-hosted with SSO, air-gapped setup, and dedicated support.

diff --git a/docs/overrides/main.html b/docs/overrides/main.html index 9597dd06f..06a217dbd 100644 --- a/docs/overrides/main.html +++ b/docs/overrides/main.html @@ -191,7 +191,7 @@ {% endblock %} {% block announce %} -Infrastructure orchestration is becoming an agent skill +Infrastructure orchestration is an agent skill. Let agents orchestrate compute on your behalf. {% endblock %} {% block footer %} From 2f73c1f7b366a8357240d5dbbc356c7db472f7f7 Mon Sep 17 00:00:00 2001 From: Andrey Cheptsov Date: Sun, 29 Mar 2026 20:32:42 +0200 Subject: [PATCH 08/14] Adjust typing animation speeds on landing page for improved user experience --- docs/assets/stylesheets/extra.css | 2 +- docs/overrides/home.html | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/assets/stylesheets/extra.css b/docs/assets/stylesheets/extra.css index 96bd24b96..f41e6d059 100644 --- a/docs/assets/stylesheets/extra.css +++ b/docs/assets/stylesheets/extra.css @@ -1277,7 +1277,7 @@ html .md-footer-meta.md-typeset a:is(:focus,:hover) { padding-right: 22px; } - .md-tabs__item:nth-child(1), .md-tabs__item:nth-child(4) { + .md-tabs__item:nth-child(1) { display: none; } diff --git a/docs/overrides/home.html b/docs/overrides/home.html index 7091a796e..86b7bdf7c 100644 --- a/docs/overrides/home.html +++ b/docs/overrides/home.html @@ -23,9 +23,9 @@ 'for AI researchers', 'for ML engineers', 'on NVIDIA GPUs', 'on AMD GPUs', 'on any GPU or CPU', 'without vendor lock-in', ], - backDelay: 5000, - typeSpeed: 150, - backSpeed: 100, + backDelay: 1800, + typeSpeed: 85, + backSpeed: 60, loop: true, }); From 88573187f61f3cc3aa05aac15616a9ba7bc4046d Mon Sep 17 00:00:00 2001 From: Andrey Cheptsov Date: Sun, 29 Mar 2026 20:58:33 +0200 Subject: [PATCH 09/14] Update landing page messaging for clarity and adjust font sizes in stylesheets --- docs/assets/stylesheets/landing.css | 3 ++- docs/blog/posts/agentic-orchestration.md | 2 ++ docs/overrides/main.html | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/assets/stylesheets/landing.css b/docs/assets/stylesheets/landing.css index 8033a8665..d48b63daa 100644 --- a/docs/assets/stylesheets/landing.css +++ b/docs/assets/stylesheets/landing.css @@ -933,7 +933,7 @@ } /*.tx-landing__trusted_by*/ [data-termynal] { - font-size: 15px; + font-size: 14px; } .tx-landing__trusted_by .termy { @@ -1062,6 +1062,7 @@ } .code-carousel .code-carousel__slide[editor-title] pre > code { + font-size: 14px; padding-top: 70px; } diff --git a/docs/blog/posts/agentic-orchestration.md b/docs/blog/posts/agentic-orchestration.md index 7c7236bf4..71ad35e87 100644 --- a/docs/blog/posts/agentic-orchestration.md +++ b/docs/blog/posts/agentic-orchestration.md @@ -4,6 +4,8 @@ date: 2026-03-11 description: "Agentic engineering pulls compute discovery, provisioning, scheduling, and observability into the execution loop. Infrastructure orchestration is becoming an agent skill." slug: agentic-orchestration image: https://dstack.ai/static-assets/static-assets/images/agentic-orchestration.png +categories: + - Changelog --- # Infrastructure orchestration is an agent skill diff --git a/docs/overrides/main.html b/docs/overrides/main.html index 06a217dbd..a2c9eb7c9 100644 --- a/docs/overrides/main.html +++ b/docs/overrides/main.html @@ -191,7 +191,7 @@ {% endblock %} {% block announce %} -Infrastructure orchestration is an agent skill. Let agents orchestrate compute on your behalf. +Let agents orchestrate infrastructure and operate workloads {% endblock %} {% block footer %} From 7703bca35d49712ad11d7fb8d66f16e884ede6b6 Mon Sep 17 00:00:00 2001 From: Andrey Cheptsov Date: Sun, 29 Mar 2026 21:45:58 +0200 Subject: [PATCH 10/14] [Landing] Minor improvements to the top banner --- docs/assets/stylesheets/landing.css | 12 ++++++++++++ docs/overrides/main.html | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/assets/stylesheets/landing.css b/docs/assets/stylesheets/landing.css index d48b63daa..52329c037 100644 --- a/docs/assets/stylesheets/landing.css +++ b/docs/assets/stylesheets/landing.css @@ -362,6 +362,18 @@ vertical-align: middle; } +.md-typeset.md-banner__inner .icon { + display: inline-block; + width: 12.5px; + height: 12.5px; + transition: opacity .2s ease,transform .2s ease; +} + +.md-typeset.md-banner__inner a:hover .icon { + transform: translateX(3px) +} + + .md-typeset .md-button .icon, .md-typeset .md-post__action .icon { display: inline-block; diff --git a/docs/overrides/main.html b/docs/overrides/main.html index a2c9eb7c9..c5d07f451 100644 --- a/docs/overrides/main.html +++ b/docs/overrides/main.html @@ -191,7 +191,7 @@ {% endblock %} {% block announce %} -Let agents orchestrate infrastructure and operate workloads +Let agents orchestrate infrastructure and operate workloads {% endblock %} {% block footer %} From 515179ead90c86903ae032b7f66eba94f34a31c2 Mon Sep 17 00:00:00 2001 From: Andrey Cheptsov Date: Sun, 29 Mar 2026 21:49:59 +0200 Subject: [PATCH 11/14] [Landing] Minor improvements to the top banner --- docs/assets/stylesheets/extra.css | 2 +- docs/overrides/main.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/assets/stylesheets/extra.css b/docs/assets/stylesheets/extra.css index f41e6d059..5ac714702 100644 --- a/docs/assets/stylesheets/extra.css +++ b/docs/assets/stylesheets/extra.css @@ -1539,7 +1539,7 @@ html .md-footer-meta.md-typeset a:is(:focus,:hover) { .md-typeset.md-banner__inner a { color: var(--md-default-bg-color); /* border-bottom: 1.5px dotted; */ - font-weight: 600; + font-weight: 500; } .md-typeset.md-banner__inner .md-banner__button svg { diff --git a/docs/overrides/main.html b/docs/overrides/main.html index c5d07f451..f35bbf540 100644 --- a/docs/overrides/main.html +++ b/docs/overrides/main.html @@ -191,7 +191,7 @@ {% endblock %} {% block announce %} -Let agents orchestrate infrastructure and operate workloads +Let agents manage infra and orchestrate workloads {% endblock %} {% block footer %} From de7d895dc24ce08dd89364f1d8b2e5ee562d71c8 Mon Sep 17 00:00:00 2001 From: Andrey Cheptsov Date: Mon, 30 Mar 2026 00:09:58 +0200 Subject: [PATCH 12/14] [Landing] Fix mobile --- docs/assets/stylesheets/landing.css | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/docs/assets/stylesheets/landing.css b/docs/assets/stylesheets/landing.css index 52329c037..c7b68d3ab 100644 --- a/docs/assets/stylesheets/landing.css +++ b/docs/assets/stylesheets/landing.css @@ -1079,9 +1079,34 @@ } @media screen and (max-width: 44.9375em) { + .tx-landing__major_feature .block.large { + width: 100%; + } + .code-carousel { - margin-left: -0.8rem; - margin-right: -0.8rem; + margin-left: 0; + margin-right: 0; + max-width: 100%; + min-width: 0; + } + + .code-carousel__slides, + .code-carousel__slide, + .code-carousel .code-carousel__slide[editor-title], + .code-carousel .code-carousel__slide[editor-title] pre, + .code-carousel .code-carousel__slide[editor-title] pre > code, + .code-carousel .code-carousel__slide > [data-termynal], + .code-carousel .code-carousel__slide[data-termynal] { + max-width: 100%; + min-width: 0; + box-sizing: border-box; + } + + .code-carousel .code-carousel__slide[editor-title] pre, + .code-carousel .code-carousel__slide > [data-termynal], + .code-carousel .code-carousel__slide[data-termynal] { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } .code-carousel .code-carousel__slide[editor-title] { From 77637e2f36c18b084c18953b28557cf07740e326 Mon Sep 17 00:00:00 2001 From: Andrey Cheptsov Date: Mon, 30 Mar 2026 00:31:15 +0200 Subject: [PATCH 13/14] [Landing] Fix mobile --- docs/assets/stylesheets/extra.css | 82 +++++++++++++++++++++++++++-- docs/assets/stylesheets/landing.css | 12 +++-- 2 files changed, 88 insertions(+), 6 deletions(-) diff --git a/docs/assets/stylesheets/extra.css b/docs/assets/stylesheets/extra.css index 5ac714702..fcde5e2e7 100644 --- a/docs/assets/stylesheets/extra.css +++ b/docs/assets/stylesheets/extra.css @@ -1491,6 +1491,30 @@ html .md-footer-meta.md-typeset a:is(:focus,:hover) { .md-typeset .tabbed-set { margin: 0 -.8rem 0 -0.8rem; + overflow-x: clip; + } + + .md-typeset .tabbed-set > .tabbed-labels { + display: flex; + flex-wrap: nowrap; + width: 100%; + max-width: 100%; + overflow-x: auto; + overflow-y: hidden; + -webkit-overflow-scrolling: touch; + box-sizing: border-box; + } + + .md-typeset .tabbed-set > .tabbed-labels > label { + flex: 0 0 auto; + white-space: nowrap; + } + + .md-typeset .tabbed-set > .tabbed-content, + .md-typeset .tabbed-set > .tabbed-content > .tabbed-block { + max-width: 100%; + min-width: 0; + box-sizing: border-box; } .md-typeset div[editor-title] code { @@ -1499,8 +1523,27 @@ html .md-footer-meta.md-typeset a:is(:focus,:hover) { } .md-typeset div[editor-title] { - margin-left: -0.8rem; - margin-right: -0.8rem; + width: 100vw; + max-width: 100vw; + margin-left: calc(50% - 50vw); + margin-right: calc(50% - 50vw); + } + + .md-typeset div[editor-title] .highlight, + .md-typeset div[editor-title] pre, + .md-typeset div[editor-title] pre > code { + max-width: 100%; + min-width: 0; + box-sizing: border-box; + } + + .md-typeset div[editor-title] .highlight { + margin: 0; + } + + .md-typeset div[editor-title] pre { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } [dir=ltr] .md-typeset :is(.admonition,details) { @@ -1511,8 +1554,41 @@ html .md-footer-meta.md-typeset a:is(:focus,:hover) { background: -webkit-linear-gradient(45deg, rgba(0, 42, 255, 0.1), rgb(0 114 255 / 1%), rgba(0, 42, 255, 0.05)) !important; } + [dir=ltr] .md-typeset details pre, + [dir=ltr] .md-typeset details blockquote, + [dir=ltr] .md-typeset details :is(.admonition,details, .termy) { + margin-left: 0 !important; + margin-right: 0 !important; + } + + [dir=ltr] .md-typeset details > :is(.md-typeset__scrollwrap,p,h4,h3,.tabbed-set,ul):not(.admonition-title,summary) { + padding-left: 0 !important; + padding-right: 0 !important; + } + + [dir=ltr] .md-typeset details :is(.md-typeset__scrollwrap,.highlight,.termy,div[editor-title],.tabbed-set,.md-typeset__table) { + width: calc(100% + 1.6rem); + max-width: calc(100% + 1.6rem); + margin-left: -0.8rem !important; + margin-right: -0.8rem !important; + box-sizing: border-box; + } + + [dir=ltr] .md-typeset details :is(pre,.md-typeset__scrollwrap,.tabbed-labels,.tabbed-content,.highlight,.termy,.md-typeset__table) { + max-width: 100%; + min-width: 0; + box-sizing: border-box; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + + [dir=ltr] .md-typeset details > .tabbed-set { + margin-left: -0.8rem !important; + margin-right: -0.8rem !important; + } + [dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels { - margin-left: 0.8rem; + margin-left: 0; padding-left: 0; } } diff --git a/docs/assets/stylesheets/landing.css b/docs/assets/stylesheets/landing.css index c7b68d3ab..8f33e73a1 100644 --- a/docs/assets/stylesheets/landing.css +++ b/docs/assets/stylesheets/landing.css @@ -1084,15 +1084,17 @@ } .code-carousel { - margin-left: 0; - margin-right: 0; - max-width: 100%; + width: 100vw; + max-width: 100vw; + margin-left: calc(50% - 50vw); + margin-right: calc(50% - 50vw); min-width: 0; } .code-carousel__slides, .code-carousel__slide, .code-carousel .code-carousel__slide[editor-title], + .code-carousel .code-carousel__slide[editor-title] .highlight, .code-carousel .code-carousel__slide[editor-title] pre, .code-carousel .code-carousel__slide[editor-title] pre > code, .code-carousel .code-carousel__slide > [data-termynal], @@ -1102,6 +1104,10 @@ box-sizing: border-box; } + .code-carousel .code-carousel__slide[editor-title] .highlight { + margin: 0; + } + .code-carousel .code-carousel__slide[editor-title] pre, .code-carousel .code-carousel__slide > [data-termynal], .code-carousel .code-carousel__slide[data-termynal] { From 0cb89efe90556aff68256eab56652faad8a92270 Mon Sep 17 00:00:00 2001 From: Andrey Cheptsov Date: Mon, 30 Mar 2026 11:26:27 +0200 Subject: [PATCH 14/14] [Landing] Layout fix --- docs/assets/stylesheets/landing.css | 5 +++++ docs/overrides/home.html | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/assets/stylesheets/landing.css b/docs/assets/stylesheets/landing.css index 8f33e73a1..7801d0345 100644 --- a/docs/assets/stylesheets/landing.css +++ b/docs/assets/stylesheets/landing.css @@ -128,6 +128,11 @@ border: 0.5px solid rgba(0, 0, 0, 0.33); } +.tx-landing .nowrap-token { + display: inline-block; + white-space: nowrap; +} + /*.tx-landing__hero_text p { font-size: 0.95rem; }*/ diff --git a/docs/overrides/home.html b/docs/overrides/home.html index 86b7bdf7c..34762eb7d 100644 --- a/docs/overrides/home.html +++ b/docs/overrides/home.html @@ -292,8 +292,8 @@

dstack is an open-source control plane for agents and engineers to provision compute and run training, inference, and sandboxes across - NVIDIA, AMD, - TPU, and Tenstorrent GPUs—on clouds, Kubernetes, and bare-metal clusters. + NVIDIA, AMD, + TPU, and Tenstorrent GPUs—on clouds, Kubernetes, and bare-metal clusters.