> ## Documentation Index
> Fetch the complete documentation index at: https://lmsysorg-dsv4-1.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Welcome to SGLang

> High-performance serving framework for large language and multimodal models.

export const PopularModels = ({models = [], variant = "strip", interval = variant === "hero" ? 9000 : 6000, label = "Popular models"}) => {
  const [index, setIndex] = useState(0);
  const [paused, setPaused] = useState(false);
  const [reduceMotion, setReduceMotion] = useState(false);
  useEffect(() => {
    if (typeof window === "undefined" || !window.matchMedia) return;
    const mq = window.matchMedia("(prefers-reduced-motion: reduce)");
    const sync = () => setReduceMotion(mq.matches);
    sync();
    mq.addEventListener("change", sync);
    return () => mq.removeEventListener("change", sync);
  }, []);
  const count = models.length;
  const isHero = variant === "hero";
  useEffect(() => {
    if (count < 2 || paused || reduceMotion) return;
    const id = window.setInterval(() => setIndex(i => (i + 1) % count), Math.max(2000, interval));
    return () => window.clearInterval(id);
  }, [count, paused, reduceMotion, interval]);
  const active = count ? Math.min(index, count - 1) : 0;
  if (!count) return null;
  const navButtonStyle = {
    display: "inline-flex",
    alignItems: "center",
    justifyContent: "center",
    width: "1.15rem",
    height: "1.15rem",
    padding: 0,
    border: "1px solid rgba(255, 255, 255, 0.28)",
    borderRadius: "999px",
    background: "rgba(255, 255, 255, 0.1)",
    color: "rgba(255, 255, 255, 0.92)",
    fontSize: "0.8rem",
    lineHeight: 1,
    cursor: "pointer"
  };
  const controls = count > 1 ? <span style={{
    display: "inline-flex",
    alignItems: "center",
    gap: "0.45rem"
  }}>
        <button type="button" onClick={() => setIndex(i => (i - 1 + count) % count)} aria-label="Previous model" style={navButtonStyle}>
          ‹
        </button>
        <span style={{
    display: "inline-flex",
    alignItems: "center",
    gap: "0.3rem"
  }}>
          {models.map((m, i) => <button key={m.href || m.name} type="button" onClick={() => setIndex(i)} aria-label={`Show ${m.name}`} aria-current={i === active ? "true" : undefined} style={{
    width: i === active ? "1.1rem" : "0.4rem",
    height: "0.4rem",
    padding: 0,
    border: 0,
    borderRadius: "999px",
    background: i === active ? "rgba(255, 255, 255, 0.92)" : "rgba(255, 255, 255, 0.34)",
    cursor: "pointer",
    transition: reduceMotion ? "none" : "width 0.25s ease, background 0.25s ease"
  }} />)}
        </span>
        <button type="button" onClick={() => setIndex(i => (i + 1) % count)} aria-label="Next model" style={navButtonStyle}>
          ›
        </button>
      </span> : null;
  const slideStyle = i => ({
    flex: "0 0 100%",
    minWidth: 0,
    opacity: i === active ? 1 : 0,
    pointerEvents: i === active ? "auto" : "none",
    transition: reduceMotion ? "none" : "opacity 0.3s ease"
  });
  const tagChip = (t, big) => <span key={t} style={{
    padding: big ? "0.35rem 0.65rem" : "0.15rem 0.45rem",
    borderRadius: "999px",
    background: big ? "rgba(255, 255, 255, 0.1)" : "rgba(255, 255, 255, 0.12)",
    color: "rgba(255, 255, 255, 0.9)",
    fontSize: big ? "0.78rem" : "0.68rem",
    fontWeight: 650,
    whiteSpace: big ? "normal" : "nowrap"
  }}>
      {t}
    </span>;
  const heroSlide = (m, i) => {
    const hero = m.hero || ({});
    const cta = hero.cta || `Open the ${m.name} cookbook`;
    return <div key={m.href || m.name} aria-hidden={i === active ? undefined : "true"} style={slideStyle(i)}>
        <div style={{
      display: "flex",
      flexWrap: "wrap",
      alignItems: "center",
      gap: "clamp(1.25rem, 3vw, 2rem)"
    }}>
          <div style={{
      flex: "1 1 24rem",
      minWidth: 0
    }}>
            <a href={m.href} tabIndex={i === active ? undefined : -1} style={{
      display: "block",
      margin: 0,
      color: "#ffffff",
      fontSize: "clamp(1.75rem, 4vw, 2.65rem)",
      fontWeight: 750,
      lineHeight: 1.08,
      letterSpacing: "-0.035em",
      textDecoration: "none"
    }}>
              {hero.headline || m.name}
            </a>
            {hero.blurb ? <div style={{
      maxWidth: "48rem",
      margin: "1rem 0 0",
      color: "rgba(255, 255, 255, 0.82)",
      fontSize: "1rem",
      lineHeight: 1.65
    }}>
                {hero.blurb}
              </div> : null}
            <div style={{
      display: "flex",
      flexWrap: "wrap",
      gap: "0.5rem",
      marginTop: "1.15rem"
    }}>
              {(hero.tags || m.tags || []).map(t => tagChip(t, true))}
            </div>
            <a href={m.href} tabIndex={i === active ? undefined : -1} style={{
      display: "inline-flex",
      alignItems: "center",
      marginTop: "1.35rem",
      padding: "0.7rem 1rem",
      borderRadius: "0.55rem",
      background: "#ffffff",
      color: "#7c2d12",
      fontSize: "0.88rem",
      fontWeight: 750,
      textDecoration: "none"
    }}>
              {cta} →
            </a>
          </div>
          <a href={m.href} aria-label={cta} tabIndex={i === active ? undefined : -1} style={{
      flex: "0 1 12rem",
      minWidth: "10rem",
      padding: "0.8rem",
      border: "1px solid rgba(255, 255, 255, 0.22)",
      borderRadius: "0.9rem",
      background: "rgba(255, 255, 255, 0.96)",
      boxShadow: "0 16px 35px rgba(0, 0, 0, 0.22)",
      textDecoration: "none"
    }}>
            <div role="img" aria-label={m.vendor || m.name} style={{
      width: "100%",
      aspectRatio: "16 / 9",
      borderRadius: "0.45rem",
      backgroundColor: "#ffffff",
      backgroundImage: `url('${m.logo}')`,
      backgroundPosition: "center",
      backgroundRepeat: "no-repeat",
      backgroundSize: "cover"
    }} />
            {hero.caption ? <div style={{
      padding: "0.65rem 0.35rem 0.2rem",
      color: "#111827",
      textAlign: "center",
      fontSize: "0.78rem",
      fontWeight: 750,
      letterSpacing: "0.06em",
      textTransform: "uppercase"
    }}>
                {hero.caption}
              </div> : null}
          </a>
        </div>
      </div>;
  };
  const stripSlide = (m, i) => <a key={m.href || m.name} href={m.href} aria-hidden={i === active ? undefined : "true"} tabIndex={i === active ? undefined : -1} style={{
    ...slideStyle(i),
    display: "flex",
    alignItems: "center",
    gap: "0.75rem",
    color: "#ffffff",
    textDecoration: "none"
  }}>
      <span role="img" aria-label={m.vendor || m.name} style={{
    flex: "0 0 auto",
    width: "3.4rem",
    aspectRatio: "16 / 9",
    borderRadius: "0.35rem",
    border: "1px solid rgba(255, 255, 255, 0.22)",
    backgroundColor: "#ffffff",
    backgroundImage: `url('${m.logo}')`,
    backgroundPosition: "center",
    backgroundRepeat: "no-repeat",
    backgroundSize: "cover"
  }} />

      <span style={{
    flex: "1 1 auto",
    minWidth: 0
  }}>
        <span style={{
    display: "flex",
    alignItems: "center",
    flexWrap: "wrap",
    gap: "0.4rem"
  }}>
          <span style={{
    fontSize: "1.02rem",
    fontWeight: 750,
    letterSpacing: "-0.02em",
    lineHeight: 1.2
  }}>
            {m.name}
          </span>
          {m.badge ? <span style={{
    padding: "0.1rem 0.4rem",
    borderRadius: "999px",
    background: "rgba(255, 255, 255, 0.92)",
    color: "#7c2d12",
    fontSize: "0.6rem",
    fontWeight: 800,
    letterSpacing: "0.06em",
    textTransform: "uppercase"
  }}>
              {m.badge}
            </span> : null}
        </span>

        <span style={{
    display: "flex",
    flexWrap: "wrap",
    gap: "0.3rem",
    marginTop: "0.35rem"
  }}>
          {(m.tags || []).map(t => tagChip(t, false))}
        </span>
      </span>

      <span style={{
    flex: "0 0 auto",
    padding: "0.25rem 0.55rem",
    borderRadius: "0.4rem",
    background: "rgba(255, 255, 255, 0.92)",
    color: "#7c2d12",
    fontSize: "0.7rem",
    fontWeight: 750,
    whiteSpace: "nowrap"
  }}>
        Open →
      </span>
    </a>;
  return <div className="not-prose">
      <div onMouseEnter={() => setPaused(true)} onMouseLeave={() => setPaused(false)} onFocus={() => setPaused(true)} onBlur={() => setPaused(false)} aria-roledescription="carousel" aria-label={label} style={{
    position: "relative",
    overflow: "hidden",
    margin: isHero ? "0 0 1.5rem" : "1.5rem 0",
    padding: isHero ? "clamp(1.5rem, 4vw, 2.5rem)" : "0.8rem 1rem 0.9rem",
    border: "1px solid rgba(251, 146, 60, 0.35)",
    borderRadius: isHero ? "1rem" : "0.9rem",
    background: "linear-gradient(135deg, #111827 0%, #31202f 58%, #9a3412 100%)",
    boxShadow: isHero ? "0 20px 45px rgba(17, 24, 39, 0.18)" : "0 14px 32px rgba(17, 24, 39, 0.16)",
    color: "#ffffff"
  }}>
        <div aria-hidden="true" style={{
    position: "absolute",
    top: isHero ? "-7rem" : "-6rem",
    right: isHero ? "-5rem" : "-4rem",
    width: isHero ? "18rem" : "14rem",
    height: isHero ? "18rem" : "14rem",
    borderRadius: "999px",
    background: "rgba(251, 146, 60, 0.18)",
    filter: "blur(2px)"
  }} />

        {}
        <div style={{
    position: "relative",
    zIndex: 1,
    display: "flex",
    alignItems: "center",
    justifyContent: "space-between",
    gap: "0.75rem",
    flexWrap: "wrap",
    marginBottom: isHero ? "0.9rem" : "0.6rem"
  }}>
          <span style={isHero ? {
    display: "inline-flex",
    alignItems: "center",
    gap: "0.45rem",
    padding: "0.35rem 0.7rem",
    border: "1px solid rgba(255, 255, 255, 0.28)",
    borderRadius: "999px",
    background: "rgba(255, 255, 255, 0.1)",
    fontSize: "0.72rem",
    fontWeight: 750,
    letterSpacing: "0.08em",
    textTransform: "uppercase"
  } : {
    display: "inline-flex",
    alignItems: "center",
    gap: "0.35rem",
    color: "rgba(255, 255, 255, 0.78)",
    fontSize: "0.66rem",
    fontWeight: 750,
    letterSpacing: "0.1em",
    textTransform: "uppercase"
  }}>
            <span aria-hidden="true">✦</span>
            {isHero ? ((models[active] || ({})).hero || ({})).eyebrow || label : label}
          </span>
          {controls}
        </div>

        <div style={{
    position: "relative",
    zIndex: 1,
    overflow: "hidden"
  }}>
          <div style={{
    display: "flex",
    alignItems: isHero ? "stretch" : "center",
    transform: `translateX(-${active * 100}%)`,
    transition: reduceMotion ? "none" : "transform 0.45s ease"
  }}>
            {models.map((m, i) => isHero ? heroSlide(m, i) : stripSlide(m, i))}
          </div>
        </div>
      </div>
    </div>;
};

export const popularModels = [{
  name: "DeepSeek-V4.1-Flash",
  vendor: "DeepSeek",
  href: "/cookbook/autoregressive/DeepSeek/DeepSeek-V4_1",
  logo: "/cards/logos/deepseek.png",
  badge: "New",
  tags: ["5 platforms", "Engram + DSpark", "FP8 dense / FP4 MoE"],
  hero: {
    eyebrow: "Featured model \u00b7 New",
    headline: "Meet DeepSeek-V4.1 Flash on SGLang",
    blurb: "DeepSeek's sparse-attention Mixture-of-Experts model, served through SGLang's `dsv4` backend \u2014 pairing multi-ratio compressed KV pools behind FlashMLA with a learned sparse index that picks a top-512 candidate set per query, an mHC mixing stage, and Engram, an n-gram hash memory whose two fp8 tables are roughly 40% of the checkpoint. It ships DSpark, its own three-stage speculative draft. Recipes cover GB300, H200, B200, B300 and AMD MI350X.",
    tags: ["384 experts / top-6", "Sparse index + Engram", "NVIDIA + AMD"],
    cta: "Open the DeepSeek-V4.1 Flash cookbook",
    caption: "DeepSeek-V4.1 Flash deployment guide"
  }
}, {
  name: "Qwen3.8-Flash-Next",
  vendor: "Qwen",
  href: "/cookbook/autoregressive/Qwen/Qwen3.8-Flash-Next",
  logo: "/cards/logos/qwen.png",
  badge: "New",
  tags: ["6 platforms", "GDN + QSA hybrid", "BF16 / FP8 / NVFP4"],
  hero: {
    eyebrow: "Featured model \u00b7 New",
    headline: "Meet Qwen3.8-Flash-Next on SGLang",
    blurb: "Qwen's early preview of the Qwen4 architecture \u2014 176B total parameters with 6B active, three of every four layers Gated DeltaNet and the fourth global attention running Qwen Sparse Attention, over an ultra-sparse MoE with an in-checkpoint MTP head. The cookbook covers single-node TP4 serving on H200 / B200 / B300 / GB300 and TP8 on MI350X / MI355X.",
    tags: ["176B / 6B active", "262K context", "Single-node"],
    cta: "Open the Qwen3.8-Flash-Next cookbook",
    caption: "Qwen3.8-Flash-Next deployment guide"
  }
}, {
  name: "GLM-5.3-Flash",
  vendor: "Z.ai",
  href: "/cookbook/autoregressive/GLM/GLM-5.3-Flash",
  logo: "/cards/logos/glm.png",
  badge: "New",
  tags: ["9 platforms", "MLA + DSA + KDA hybrid", "Multimodal"],
  hero: {
    eyebrow: "Featured model · New",
    headline: "Meet GLM-5.3-Flash on SGLang",
    blurb: "Z.ai's natively multimodal Mixture-of-Experts model — 320B total parameters with 18B active, 45 text layers combining MLA, DSA sparse, and KDA linear attention, a 24-layer vision encoder for image and video input, and a native MTP draft layer for speculative decoding. Recipes cover H100 / H200 / B200 / B300 / GB200 / GB300 and AMD MI300X / MI325X / MI355X.",
    tags: ["320B / 18B active", "1M context", "Text + image + video"],
    cta: "Open the GLM-5.3-Flash cookbook",
    caption: "GLM-5.3-Flash deployment guide"
  }
}, {
  name: "MiniMax-H3",
  vendor: "MiniMax",
  href: "/cookbook/diffusion/MiniMax/MiniMax-H3",
  logo: "/cards/logos/minimax.png",
  badge: "New",
  tags: ["7 platforms", "Video + audio", "BF16 / FP8"],
  hero: {
    eyebrow: "Featured model · New",
    headline: "Meet MiniMax-H3 on SGLang",
    blurb: "MiniMax's video-and-audio diffusion model — one request returns an MP4 carrying 24 fps video and a synchronized stereo audio track. SGLang Diffusion serves all three task profiles — text, first/last frame, and image / video / audio reference conditioning — with Ulysses × Ring sequence parallelism and recipes across B200, B300, H200, H100, AMD MI300X / MI355X, and 2× RTX 5090.",
    tags: ["Video + synced audio", "4–15 s at 24 fps", "8× B200 → 2× RTX 5090"],
    cta: "Open the MiniMax-H3 cookbook",
    caption: "MiniMax-H3 deployment guide"
  }
}, {
  name: "Kimi-K3",
  vendor: "Moonshot AI",
  href: "/cookbook/autoregressive/Moonshotai/Kimi-K3",
  logo: "/cards/logos/moonshotai.png",
  badge: "New",
  tags: ["8 platforms", "PD disagg", "DSPARK"],
  hero: {
    eyebrow: "Featured model · New",
    headline: "Meet Kimi-K3 on SGLang",
    blurb: "SGLang natively implements and deeply optimizes K3's new architecture with fused KDA decode kernels, DP attention, MTP, PD disaggregation, and KDA-aware prefix caching. Kimi-K3 is supported on both NVIDIA and AMD GPUs.",
    tags: ["2.8T parameters", "Fused KDA decode", "NVIDIA + AMD"],
    cta: "Open the Kimi-K3 cookbook",
    caption: "Kimi-K3 deployment guide"
  }
}];

<PopularModels models={popularModels} variant="hero" />

<a class="github-button" href="https://github.com/sgl-project/sglang" data-size="large" data-show-count="true" aria-label="Star sgl-project/sglang on GitHub">
  Star
</a>

<a class="github-button" href="https://github.com/sgl-project/sglang/fork" data-icon="octicon-repo-forked" data-size="large" data-show-count="true" aria-label="Fork sgl-project/sglang on GitHub">
  Fork
</a>

<script async defer src="https://buttons.github.io/buttons.js" />

<br />

<CardGroup cols={2}>
  <Card title="Performance & Runtime" icon="arrow-trend-up">
    Designed for low-latency, high-throughput inference with RadixAttention, prefix caching, and multi-GPU parallelism.
  </Card>

  <Card title="Models & Ecosystem" icon="hexagon-nodes">
    Broad support for Llama, Qwen, DeepSeek, and more. Compatible with Hugging
    Face and OpenAI APIs.
  </Card>

  <Card title="Extensive Hardware Support" icon="microchip">
    Native support across <a href="./docs/hardware-platforms/overview">Hardware Platforms</a>
    including NVIDIA, AMD, Intel Xeon, Google TPU, Ascend NPU, and Moore Threads MUSA accelerators.
  </Card>

  <Card title="Community & Training" icon="users">
    Open-source with widespread adoption, powering 400k+ GPUs and integrated with major RL frameworks.
  </Card>
</CardGroup>

SGLang powers large-scale production deployments, generating trillions of tokens each day across more than 400,000 GPUs worldwide. It is hosted under the non-profit open-source organization [LMSYS](https://lmsys.org/about/).

***

## Get Started

SGLang is an inference framework meant for production level serving.
It is designed to deliver low-latency and high-throughput inference across a wide range of setups, from a single GPU to large distributed clusters.

<CardGroup cols={2}>
  <Card title="Install SGLang" icon="angles-down" href="./docs/get-started/install">
    Install SGLang with pip, from source, or via Docker on your preferred hardware platform.
  </Card>

  <Card title="Quickstart" icon="zap" href="./docs/get-started/quickstart">
    Launch your first model server and send requests in minutes with OpenAI-compatible APIs.
  </Card>
</CardGroup>

## News and latest blogs

<div className="not-prose">
  <div
    style={{
  display: "grid",
  gridTemplateColumns: "repeat(auto-fit, minmax(300px, 1fr))",
  gap: "1rem",
  alignItems: "stretch",
}}
  >
    <a
      href="https://lmsys.org/blog/2026-09-10-deepseek-v41/"
      target="_blank"
      rel="noopener noreferrer"
      style={{
    display: "block",
    border: "1px solid rgba(128, 128, 128, 0.3)",
    borderRadius: "0.75rem",
    overflow: "hidden",
    textDecoration: "none",
    color: "inherit",
    height: "100%",
  }}
    >
      <div
        style={{
      aspectRatio: "16 / 9",
      overflow: "hidden",
      background: "rgba(128, 128, 128, 0.15)",
    }}
      >
        <img
          src="https://lmsys.org/images/blog/deepseek-v41/preview.png"
          alt="SGLang and Miles Add Day-0 Support for DeepSeek-V4.1"
          style={{
        width: "100%",
        height: "100%",
        objectFit: "cover",
        objectPosition: "center",
        display: "block",
      }}
        />
      </div>

      <div style={{ padding: "0.9rem 1rem 1rem" }}>
        <p
          style={{
        margin: 0,
        fontWeight: 600,
        lineHeight: 1.35,
        fontSize: "0.98rem",
      }}
        >
          {"SGLang and Miles Add Day-0 Support for DeepSeek-V4.1"}
        </p>

        <p
          style={{
        margin: "0.55rem 0 0",
        fontSize: "0.85rem",
        opacity: 0.75,
      }}
        >
          {"September 10, 2026"}
        </p>
      </div>
    </a>

    <a
      href="https://lmsys.org/blog/2026-08-28-infer-forge-loop-engineering/"
      target="_blank"
      rel="noopener noreferrer"
      style={{
    display: "block",
    border: "1px solid rgba(128, 128, 128, 0.3)",
    borderRadius: "0.75rem",
    overflow: "hidden",
    textDecoration: "none",
    color: "inherit",
    height: "100%",
  }}
    >
      <div
        style={{
      aspectRatio: "16 / 9",
      overflow: "hidden",
      background: "rgba(128, 128, 128, 0.15)",
    }}
      >
        <img
          src="https://lmsys.org/images/blog/infer-forge-loop/cover.png"
          alt="Infer-forge: Harness, Loop, and Graph Engineering Around SGLang"
          style={{
        width: "100%",
        height: "100%",
        objectFit: "cover",
        objectPosition: "center",
        display: "block",
      }}
        />
      </div>

      <div style={{ padding: "0.9rem 1rem 1rem" }}>
        <p
          style={{
        margin: 0,
        fontWeight: 600,
        lineHeight: 1.35,
        fontSize: "0.98rem",
      }}
        >
          {"Infer-forge: Harness, Loop, and Graph Engineering Around SGLang"}
        </p>

        <p
          style={{
        margin: "0.55rem 0 0",
        fontSize: "0.85rem",
        opacity: 0.75,
      }}
        >
          {"August 28, 2026"}
        </p>
      </div>
    </a>

    <a
      href="https://lmsys.org/blog/2026-08-27-minimax-h3-h200/"
      target="_blank"
      rel="noopener noreferrer"
      style={{
    display: "block",
    border: "1px solid rgba(128, 128, 128, 0.3)",
    borderRadius: "0.75rem",
    overflow: "hidden",
    textDecoration: "none",
    color: "inherit",
    height: "100%",
  }}
    >
      <div
        style={{
      aspectRatio: "16 / 9",
      overflow: "hidden",
      background: "rgba(128, 128, 128, 0.15)",
    }}
      >
        <img
          src="https://lmsys.org/images/blog/minimax-h3-h200/preview.png"
          alt="MiniMax-H3 on 8\u00d7H200: 1.95\u00d7 Lossless, Up to 6.24\u00d7 at 0.76\u20130.91 SSIM"
          style={{
        width: "100%",
        height: "100%",
        objectFit: "cover",
        objectPosition: "center",
        display: "block",
      }}
        />
      </div>

      <div style={{ padding: "0.9rem 1rem 1rem" }}>
        <p
          style={{
        margin: 0,
        fontWeight: 600,
        lineHeight: 1.35,
        fontSize: "0.98rem",
      }}
        >
          {"MiniMax-H3 on 8\u00d7H200: 1.95\u00d7 Lossless, Up to 6.24\u00d7 at 0.76\u20130.91 SSIM"}
        </p>

        <p
          style={{
        margin: "0.55rem 0 0",
        fontSize: "0.85rem",
        opacity: 0.75,
      }}
        >
          {"August 27, 2026"}
        </p>
      </div>
    </a>

    <a
      href="https://lmsys.org/blog/2026-08-26-qwen-flash-next/"
      target="_blank"
      rel="noopener noreferrer"
      style={{
    display: "block",
    border: "1px solid rgba(128, 128, 128, 0.3)",
    borderRadius: "0.75rem",
    overflow: "hidden",
    textDecoration: "none",
    color: "inherit",
    height: "100%",
  }}
    >
      <div
        style={{
      aspectRatio: "16 / 9",
      overflow: "hidden",
      background: "rgba(128, 128, 128, 0.15)",
    }}
      >
        <img
          src="https://lmsys.org/images/blog/qwen-flash-next/cover.png"
          alt="Qwen3.8-Flash-Next: Day-0 Support in SGLang"
          style={{
        width: "100%",
        height: "100%",
        objectFit: "cover",
        objectPosition: "center",
        display: "block",
      }}
        />
      </div>

      <div style={{ padding: "0.9rem 1rem 1rem" }}>
        <p
          style={{
        margin: 0,
        fontWeight: 600,
        lineHeight: 1.35,
        fontSize: "0.98rem",
      }}
        >
          {"Qwen3.8-Flash-Next: Day-0 Support in SGLang"}
        </p>

        <p
          style={{
        margin: "0.55rem 0 0",
        fontSize: "0.85rem",
        opacity: 0.75,
      }}
        >
          {"August 26, 2026"}
        </p>
      </div>
    </a>

    <a
      href="https://lmsys.org/blog/2026-08-21-sglang-fast-recovery/"
      target="_blank"
      rel="noopener noreferrer"
      style={{
    display: "block",
    border: "1px solid rgba(128, 128, 128, 0.3)",
    borderRadius: "0.75rem",
    overflow: "hidden",
    textDecoration: "none",
    color: "inherit",
    height: "100%",
  }}
    >
      <div
        style={{
      aspectRatio: "16 / 9",
      overflow: "hidden",
      background: "rgba(128, 128, 128, 0.15)",
    }}
      >
        <img
          src="https://lmsys.org/images/blog/sglang-fast-recovery/preview.png"
          alt="Fast Engine Recovery: Sub-Second Engine Restart for SGLang via Weight Cache Daemon"
          style={{
        width: "100%",
        height: "100%",
        objectFit: "cover",
        objectPosition: "center",
        display: "block",
      }}
        />
      </div>

      <div style={{ padding: "0.9rem 1rem 1rem" }}>
        <p
          style={{
        margin: 0,
        fontWeight: 600,
        lineHeight: 1.35,
        fontSize: "0.98rem",
      }}
        >
          {"Fast Engine Recovery: Sub-Second Engine Restart for SGLang via Weight Cache Daemon"}
        </p>

        <p
          style={{
        margin: "0.55rem 0 0",
        fontSize: "0.85rem",
        opacity: 0.75,
      }}
        >
          {"August 21, 2026"}
        </p>
      </div>
    </a>

    <a
      href="https://lmsys.org/blog/2026-08-21-ling3-flash-spec-decode-blackwell/"
      target="_blank"
      rel="noopener noreferrer"
      style={{
    display: "block",
    border: "1px solid rgba(128, 128, 128, 0.3)",
    borderRadius: "0.75rem",
    overflow: "hidden",
    textDecoration: "none",
    color: "inherit",
    height: "100%",
  }}
    >
      <div
        style={{
      aspectRatio: "16 / 9",
      overflow: "hidden",
      background: "rgba(128, 128, 128, 0.15)",
    }}
      >
        <img
          src="https://lmsys.org/images/blog/ling3-flash-batch1/00_headline.png"
          alt="Chasing the Batch-1 Floor: Ling-3.0-flash Speculative Decode on Blackwell"
          style={{
        width: "100%",
        height: "100%",
        objectFit: "cover",
        objectPosition: "center",
        display: "block",
      }}
        />
      </div>

      <div style={{ padding: "0.9rem 1rem 1rem" }}>
        <p
          style={{
        margin: 0,
        fontWeight: 600,
        lineHeight: 1.35,
        fontSize: "0.98rem",
      }}
        >
          {"Chasing the Batch-1 Floor: Ling-3.0-flash Speculative Decode on Blackwell"}
        </p>

        <p
          style={{
        margin: "0.55rem 0 0",
        fontSize: "0.85rem",
        opacity: 0.75,
      }}
        >
          {"August 21, 2026"}
        </p>
      </div>
    </a>
  </div>
</div>

***

## Learn more and join the community

<div className="not-prose">
  <div
    style={{
  padding: "0.9rem 0",
  borderTop: "1px solid rgba(128, 128, 128, 0.24)",
  borderBottom: "1px solid rgba(128, 128, 128, 0.24)",
}}
  >
    <p
      style={{
    margin: "0 0 0.35rem",
    fontSize: "0.82rem",
    fontWeight: 700,
    letterSpacing: "0.08em",
    textTransform: "uppercase",
    opacity: 0.72,
  }}
    >
      Stay connected
    </p>

    <div
      style={{
    display: "grid",
    gap: "0.55rem",
    fontSize: "0.97rem",
    lineHeight: 1.7,
  }}
    >
      <div>
        <span style={{ display: "inline-flex", alignItems: "center", verticalAlign: "-0.125em" }}>
          <Icon icon="map" size={14} />
        </span>

        {" "}

        <a href="https://roadmap.sglang.io">Development roadmap</a>
        <span style={{ opacity: 0.62 }}> to follow current priorities and upcoming work.</span>
      </div>

      <div>
        <span style={{ display: "inline-flex", alignItems: "center", verticalAlign: "-0.125em" }}>
          <Icon icon="calendar-days" size={14} />
        </span>

        {" "}

        <a href="https://meet.sglang.io">Weekly public development meeting</a>
        <span style={{ opacity: 0.62 }}> to hear updates and join open discussions.</span>
      </div>

      <div>
        <span style={{ display: "inline-flex", alignItems: "center", verticalAlign: "-0.125em" }}>
          <Icon icon="slack" size={14} />
        </span>

        {" "}

        <a href="https://slack.sglang.io/">Slack</a>
        <span style={{ opacity: 0.62 }}> for questions, feedback, and community support.</span>
      </div>

      <div>
        <a href="https://x.com/lmsysorg">X Twitter</a>
        <span style={{ opacity: 0.62 }}> and </span>

        <span style={{ display: "inline-flex", alignItems: "center", verticalAlign: "-0.125em" }}>
          <Icon icon="linkedin" size={14} />
        </span>

        {" "}

        <a href="https://www.linkedin.com/company/sgl-project/">LinkedIn</a>
        <span style={{ opacity: 0.62 }}> for project updates.</span>
      </div>

      <div>
        <span style={{ display: "inline-flex", alignItems: "center", verticalAlign: "-0.125em" }}>
          <Icon icon="newspaper" size={14} />
        </span>

        {" "}

        <a href="https://lmsys.org/blog/">LMSYS blog</a>
        <span style={{ opacity: 0.62 }}> for release notes, benchmarks, and technical deep dives.</span>
      </div>

      <div>
        <span style={{ display: "inline-flex", alignItems: "center", verticalAlign: "-0.125em" }}>
          <Icon icon="book-open" size={14} />
        </span>

        {" "}

        <a href="https://github.com/sgl-project/sgl-learning-materials">Learning materials</a>
        <span style={{ opacity: 0.62 }}> for blogs, slides, and videos.</span>
      </div>
    </div>
  </div>
</div>
