From efd6df5189de176476135fe86a33934af95458cb Mon Sep 17 00:00:00 2001 From: peterschmidt85 Date: Sat, 14 Sep 2024 13:47:47 +0200 Subject: [PATCH] [Docs] Updated FAQ; plus minor styling updates --- docs/assets/images/ask-ai-logo.svg | 7 -- docs/assets/stylesheets/extra.css | 56 +++++++---- docs/assets/stylesheets/landing.css | 38 ++++--- docs/assets/stylesheets/termynal.css | 2 +- docs/overrides/home.html | 145 ++++++++++++++++----------- docs/overrides/main.html | 2 +- mkdocs.yml | 14 +-- 7 files changed, 153 insertions(+), 111 deletions(-) delete mode 100644 docs/assets/images/ask-ai-logo.svg diff --git a/docs/assets/images/ask-ai-logo.svg b/docs/assets/images/ask-ai-logo.svg deleted file mode 100644 index c4c5e41c6..000000000 --- a/docs/assets/images/ask-ai-logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/docs/assets/stylesheets/extra.css b/docs/assets/stylesheets/extra.css index 957b356b2..4a3196ed5 100644 --- a/docs/assets/stylesheets/extra.css +++ b/docs/assets/stylesheets/extra.css @@ -1,4 +1,8 @@ @media screen and (min-width: 76.1875em) { + html { + scroll-behavior: smooth; + } + .md-header { backdrop-filter: blur(5px); background-color: rgba(255, 255, 255, 0); @@ -43,8 +47,8 @@ } #kapa-widget-container .mantine-Button-root { - height: 4rem !important; - width: 4rem !important; + height: 3.5rem !important; + width: 3.5rem !important; background: rgba(255,255,255, 0.5) !important; box-shadow: none !important; border: 0.5px solid black !important; @@ -52,12 +56,12 @@ } #kapa-widget-container .mantine-Image-image { - width: 1.2rem !important; - height: 1.2rem !important;; + width: 27.5px !important; + height: 27.5px !important;; } #kapa-widget-container .mantine-Image-root { - width: 1.2rem !important; + width: 27.5px !important; } .mantine-Modal-body .mantine-Input-input { @@ -294,12 +298,13 @@ background: transparent; box-shadow: none; padding: 6px 15px 5px; - font-size: 17px; - font-weight: 700; + font-size: 17.5px; + font-weight: 600; color: rgba(0, 0, 0, 0.87); position: relative; margin-left: 8px; margin-bottom: 4px; + letter-spacing: -0.5px; } @font-face { @@ -416,6 +421,7 @@ .md-nav__link { margin-top: 0; + color: black; } .md-nav__link:hover { @@ -424,7 +430,7 @@ .md-nav__item, .md-nav__link .md-typeset { /*color: rgba(0,0,0,0.87);*/ - font-weight: 500; + font-weight: 400; font-size: 0.75rem; } @@ -489,7 +495,7 @@ h4.doc-heading { .md-typeset pre > code { background-color: rgb(21, 22, 29); padding: 65px 30px 35px 40px; - border-radius: 4px; + border-radius: 3px; font-size: 15px; /*border-radius: 6px;*/ @@ -521,14 +527,14 @@ h4.doc-heading { @media screen and (min-width: 60em) { [data-md-color-primary=white] .md-search__form { background-color: transparent; - border-radius: 4px; - border: 1px solid black; + border-radius: 3px; + border: 0.5px solid rgba(0, 0, 0, 0.87); height: 1.9rem; } [data-md-color-primary=white] .md-search__form:hover { background-color: transparent; - border: 1px solid black; + border: 0.5px solid black } } @@ -770,8 +776,8 @@ body { .md-nav__item--section > .md-nav__link { /*text-transform: uppercase;*/ display: inline-block; - font-size: 17.5px; - font-weight: 700; + font-size: 17px; + font-weight: 600; line-height: 1.4rem; letter-spacing: -0.5px; position: relative; @@ -825,7 +831,7 @@ body { } .md-sidebar--primary .md-nav__link { - padding: 6px 15px 5px; + padding: 5px 15px 5px; margin-top: 0; } @@ -838,7 +844,7 @@ body { .md-sidebar--secondary .md-nav__link { margin-left: -8px; border-left: 2px solid transparent; - padding: 6px 15px 5px; + padding: 5px 15px 5px; margin-right: 0 !important; } @@ -875,7 +881,7 @@ body { .md-nav__item--section>.md-nav>.md-nav__list>li.md-nav__item:not(.md-nav__item--nested):not(.md-nav__item--active) { margin-left: 12px; border-left: 0.5px dotted rgba(0, 0, 0, 0.4); - font-size: 16.5px; + /*font-size: 16.5px;*/ } .md-sidebar--primary a.md-nav__link--active { overflow: inherit; @@ -1209,6 +1215,10 @@ html .md-footer-meta.md-typeset a:is(:focus,:hover) { contain: none; } + .md-tabs__item--active .md-tabs__link { + font-weight: 600; + } + .md-tabs__item--active .md-tabs__link:after { position: absolute; background: -webkit-linear-gradient(100deg, #0048ff, #ce00ff); @@ -1334,13 +1344,17 @@ html .md-footer-meta.md-typeset a:is(:focus,:hover) { .md-tabs__link { font-size: 0.85rem; - font-weight: 600; - color: black; + font-weight: 500; + color: rgba(0,0,0,0.87); letter-spacing: -0.5px; margin-top: 1px; line-height: 24px; } + .md-tabs__link:hover { + color: black; + } + .md-tabs__link.md-tabs__link--active { color: var(--md-accent-fg-color); } @@ -1393,7 +1407,7 @@ html .md-footer-meta.md-typeset a:is(:focus,:hover) { @media screen and (min-width: 76.25em) { .md-search .md-search__inner { /*padding-top: 0.58rem;*/ - margin-right: 0.8rem; + margin-right: 8px; } [data-md-toggle=search]:checked ~ .md-header .md-search__inner, .md-search__scrollwrap { @@ -1564,7 +1578,7 @@ html .md-footer-meta.md-typeset a:is(:focus,:hover) { font-weight: 500 !important; padding: 0.4em 1.5em; font-size: 17px; - border-radius: 4px; + border-radius: 3px; } /*[data-md-color-primary=white] .md-button:hover{ diff --git a/docs/assets/stylesheets/landing.css b/docs/assets/stylesheets/landing.css index ba528035c..de6ab12b1 100644 --- a/docs/assets/stylesheets/landing.css +++ b/docs/assets/stylesheets/landing.css @@ -12,7 +12,7 @@ .tx-landing__hero_text h1 { margin-bottom: .75rem; - font-weight: 800; + font-weight: 700; font-size: 2.5em; letter-spacing: -3px; } @@ -29,7 +29,7 @@ margin-right: -4px; } -.tx-landing__hero_text .highlight { +.tx-landing__hero_text .highlight, .tx-faq__item-body .highlight { display: inline-block; border-radius: 3px; padding: 1px 5px; @@ -110,7 +110,7 @@ } .tx-landing__hero_text h1 { - font-size: 2.8rem; + font-size: 3rem; max-width: 36rem; line-height: 1.2; } @@ -223,7 +223,7 @@ .md-typeset .md-button { margin-top: 1.2rem; margin-bottom: 1.5rem; - font-size: 21px; + font-size: 20px; font-weight: 400 !important; text-align: center; border-radius: 3px; @@ -232,7 +232,7 @@ } .md-header__buttons .md-button { - font-size: 18px; + font-size: 18.7px; letter-spacing: -0.5px; } @@ -273,7 +273,7 @@ [data-md-color-primary=white] .md-typeset .md-button--primary, [data-md-color-primary=white] .md-typeset .md-button--primary:hover { background: rgba(0, 0, 0, 0.87); border: 1.5px solid rgba(0, 0, 0, 0.87); - border-radius: 4px; + border-radius: 3px; font-weight: 400 !important; /*margin-right: 10px;*/ } @@ -285,7 +285,7 @@ .md-header__buttons .md-button--primary, .md-header__buttons .md-button-secondary { - font-weight: 500 !important; + font-weight: 400 !important; white-space: nowrap; padding: 0.4rem 0.8rem; } @@ -321,8 +321,14 @@ .md-typeset .md-button-secondary:focus { background: transparent; color: rgba(0, 0, 0, 0.87); - border: 1.5px solid rgba(0, 0, 0, 0.87); - border-radius: 4px; + border: 0.5px solid rgba(0, 0, 0, 0.87); + border-radius: 3px; +} + +.md-header__buttons .md-button-secondary:hover, +.md-typeset .md-button-secondary:hover { + color: black; + border: 0.5px solid blackl } .md-header__buttons .md-button-secondary.borderless, @@ -330,7 +336,7 @@ border: none; padding: 0 20px 0 0; margin: 0; - font-weight: 600 !important; + font-weight: 500 !important; } .md-header__buttons { @@ -383,8 +389,10 @@ .providers.tx-landing__highlights_grid .feature-cell h3 { align-content: center; - font-size: 1.1em; + font-size: 17.5px; + font-weight: 600; padding-bottom: 0.05em; + line-height: 25px; } .providers.tx-landing__highlights_grid .feature-cell { @@ -513,7 +521,7 @@ } .tx-landing__highlights_grid h3 { - font-size: 1.2em; + font-size: 1.1em; font-weight: 700; border-bottom: none; padding-bottom: 0.3em; @@ -570,6 +578,10 @@ max-width: 500px; } +.tx-landing__major_feature h2 { + font-weight: 700; +} + .tx-landing__major_feature h3 { padding-bottom: 0; border-bottom: none; @@ -747,7 +759,7 @@ .md-header__buttons .md-button--primary.sky, .md-header__buttons .md-button--primary.sky:hover, .md-typeset .md-button--primary.sky, .md-typeset .md-button--primary.sky:hover { background: -webkit-linear-gradient(45deg, #002aff, #002aff, #e165fe); - border-radius: 4px; + border-radius: 3px; border: 1px solid transparent; } diff --git a/docs/assets/stylesheets/termynal.css b/docs/assets/stylesheets/termynal.css index 2c06d7f18..6b557f1c7 100644 --- a/docs/assets/stylesheets/termynal.css +++ b/docs/assets/stylesheets/termynal.css @@ -32,7 +32,7 @@ font-size: 14px; /* font-family: 'Fira Mono', Consolas, Menlo, Monaco, 'Courier New', Courier, monospace; */ font-family: var(--md-code-font-family) !important; - border-radius: 4px; + border-radius: 3px; padding: 45px 25px 25px; /*padding: 75px 45px 35px;*/ position: relative; diff --git a/docs/overrides/home.html b/docs/overrides/home.html index f7ad901b1..68a30f19f 100644 --- a/docs/overrides/home.html +++ b/docs/overrides/home.html @@ -108,13 +108,12 @@
-

AI container orchestration
for everyone

+

AI container orchestration
for everyone

- dstack is an open-source alternative to Kubernetes, designed to simplify development, - training, and deployment of AI across any cloud or - on-prem. - It supports + dstack is an open-source alternative to Kubernetes, + designed to simplify development and deployment of AI. It works with top cloud providers and + on-prem servers, and supports NVIDIA, AMD, and TPU.

@@ -147,11 +146,14 @@

AI container orchestration
for everyone

Dev environments

-

Before scheduling a task or deploying a model, you may want to run code interactively.

+

+ Dev environments allow you to provision a remote machine, set up with your code and favorite + IDE, with just one command. +

- Dev environments allow you to provision a remote machine set up with your code and favorite IDE - with just one command. + Dev environments are perfect for interactively running code + using your favorite IDE or notebook before scheduling a task or deploying a service.

@@ -197,10 +199,12 @@

Tasks

Services

- A service allows you to deploy a web app or a model as a scalable endpoint. It lets you configure - dependencies, resources, authorizarion, auto-scaling rules, etc. + Services allow you to deploy web apps or models as private or public auto-scalable endpoints. + You can configure dependencies, resources, authorizarion, auto-scaling rules, etc.

+

Once deployed, the web app or a model can be used by anyone on the team.

+

Learn more @@ -405,10 +409,10 @@

Get started in under a minute

-
CLI & API
-
Control plane
-
Multiple tenancies
Private subnets
+
Multiple tenancies
+
Control plane
+
CLI & API
@@ -425,26 +429,25 @@

Get started in under a minute

- Get the cheapest GPU from the marketplace. + Get the cheapest GPUs from the marketplace.
- -
CLI & API
-
Control plane
Multiple tenancies
-
GPU marketplace
+
Control plane
+
CLI & API
+
@@ -467,101 +470,121 @@

FAQ

- What is dstack? + Who is using dstack and why?

- dstack is an open-source orchestration engine that simplifies developing, training, and - deploying AI - models, as well as managing clusters on any cloud or data center. - It provides a unified interface to manage AI model development at any scale, - whether in the cloud or on-premises. + dstack is used by both small teams and large + enterprises.

+

Small teams use dstack as + an alternative to Kubernetes or Slurm + for the ease of development, training, and deployment of AI. + One of the advantages for small teams is that dstack + allows to access GPUs from a variety of providers at most affordable rate.

+

- With dstack, you can utilize various cloud providers or on-prem infrastructure, along with - any hardware, and leverage open-source frameworks and tools for both training and - deployment. + Large enterprises use dstack + as an alternative to Kubernetes + or cloud platforms such as SageMaker, + Vertex AI, or Azure ML, + for development simplicity and flexibility while also + avoiding vendor lock-in, and the ability to combine multiple + clouds + and on-prem servers.

- How does it compare to Kubernetes? + How does dstack compare to Kubernetes?

- Both dstack and Kubernetes are container orchestration engines that can be used with cloud - and on-prem. The difference is that dstack is much more lightweight and tailored to simplify - AI development. + Both dstack and + Kubernetes are container orchestrators that can be used with + cloud + and on-prem.

-

First of all, dstack offers an interface tailored for AI, allowing any AI engineer to use it - out of the box for development, training, and deployment without needing additional tools or +

First of all, dstack offers an interface tailored for AI, + allowing AI engineers to use it out of the box for development, + training, and deployment without needing additional tools or help from the Ops team.

- dstack, out of the box, supports multiple cloud providers and offers all the features of a - managed version of Kubernetes. It's very easy to integrate dstack with new cloud providers. + dstack, out of the box, supports multiple cloud providers + and offers all the features of a managed version of Kubernetes. + It's very easy to integrate dstack with new cloud providers.

-

dstack is much easier to use for running containers on on-prem servers. If you have a cluster - of on-prem servers, you just need to provide dstack with their hostnames and SSH - credentials. dstack will automatically add them as a fleet that you can reuse to run +

dstack is much easier to use for running containers + on on-prem servers. If you have a cluster + of on-prem servers, you just need to + provide dstack with their hostnames and SSH + credentials. dstack will automatically add them as a fleet that you can reuse to run containers.

- Can I use dstack with Kubernetes? + Can dstack and Kubernetes be used together?

- If you already use Kubernetes, you can set up the dstack server to run containers via - Kubernetes. In that case, dstack provides your AI engineers with a simple interface for + If you already use Kubernetes, you can set up the + dstack server to run containers via + Kubernetes. In that case, + dstack provides your AI engineers with a simple interface for running dev environments, tasks, and services without involving your Ops team or using any other tools.

- Unless you're required to use Kubernetes, it's generally recommended to use dstack without - Kubernetes and set up cloud accounts and on-prem servers directly via dstack's backends and - fleets. In that case, the provisioning of instances will be more efficient and convenient. + Often mature teams use dstack + and Kubernetes side by side, where + dstack is used for anything + related to AI development and Kubernetes + for production-grade deployment.

- What is dstack Sky? + Who is behind dstack?

- If you don't want to host the dstack server yourself or would like to access GPU from the - dstack's marketplace, sign up with - dstack Sky. + dstack is being developed + as an open-source project under the MPL-2.0 licence by a team + of senior system engineers with lots of experience + building container orchestration and managing infrastructure.

+

- Unlike the open-source dstack where you have to set up and manage the server yourself, - dstack Sky takes care of hosting the server on your behalf. - Most importantly, dstack Sky offers access to cloud GPUs through its marketplace, - ensuring you get them at competitive rates. + dstack is a Munich-based company + backed by european VCs.

-

- If needed, you can still configure dstack Sky to use your own cloud accounts or connect to - your on-prem servers. + +

While dstack helps enterprises adopt dstack, + it's primarily committed to developing dstack as + an open-source project, open to third-party contribution + from individuals and large vendors.

+
@@ -569,14 +592,14 @@

FAQ

Have questions, or need help?
+ + Contact us + Community -

diff --git a/docs/overrides/main.html b/docs/overrides/main.html index 76e3cb335..211ca2546 100644 --- a/docs/overrides/main.html +++ b/docs/overrides/main.html @@ -67,7 +67,7 @@ data-website-id="1c028b8e-609e-40e3-b792-f3939a461850" data-project-name="dstack" data-project-color="#000000" - data-project-logo="/assets/images/ask-ai-logo.svg" + data-project-logo="/assets/images/dstack-logo-notext.svg" data-modal-disclaimer="This is a custom LLM for dstack with access to Documentation, API references and GitHub issues. This feature is experimental - Give it a try!" data-user-analytics-fingerprint-enabled="true" async> diff --git a/mkdocs.yml b/mkdocs.yml index 7624249f8..65f25f61e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -11,7 +11,7 @@ repo_name: dstackai/dstack edit_uri: edit/master/docs/ #Copyright -copyright: © 2024 dstack GmbH +copyright: © 2024 dstack # Configuration theme: @@ -186,12 +186,12 @@ extra: link: https://discord.gg/u8SmfwPpMd - icon: /simple/x link: https://twitter.com/dstackai -# - icon: /fontawesome/brands/github -# link: https://github.com/dstackai/dstack -# - icon: /fontawesome/brands/python -# link: https://pypi.org/project/dstack -# - icon: /fontawesome/brands/docker -# link: https://hub.docker.com/r/dstackai/dstack + - icon: /fontawesome/brands/github + link: https://github.com/dstackai/dstack + - icon: /fontawesome/brands/python + link: https://pypi.org/project/dstack + - icon: /fontawesome/brands/docker + link: https://hub.docker.com/r/dstackai/dstack status: new: Recently added # Page tree