> ## Documentation Index
> Fetch the complete documentation index at: https://upstash-dx-2982-blob-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Serverless data and messaging for developers: Redis, Vector, QStash, Workflow, Search, Box, and Blob, with SDKs, integrations, and a full-featured console.

export const Community = () => {
  const links = [{
    name: "Discord",
    desc: "Ask questions and meet other developers.",
    href: "https://upstash.com/discord"
  }, {
    name: "Blog",
    desc: "Read product news and engineering stories.",
    href: "https://upstash.com/blog"
  }, {
    name: "X / Twitter",
    desc: "Follow the latest Upstash updates.",
    href: "https://x.com/upstash"
  }];
  return <div className="u-grid u-grid--fixed3">
      {links.map(link => <a key={link.href} href={link.href} className="u-card u-community">
          <div className="u-card__body">
            <div className="u-card__title">{link.name}</div>
            <div className="u-card__desc">{link.desc}</div>
          </div>
        </a>)}
    </div>;
};

export const UtilityGrid = () => {
  const tools = [{
    name: "Rate Limit",
    desc: "Protect your APIs from abuse.",
    href: "/redis/sdks/ratelimit-ts/overview"
  }, {
    name: "Realtime",
    desc: "The easiest way to add realtime.",
    href: "/realtime/overall/quickstart"
  }, {
    name: "AI Tracking",
    desc: "AI agent traffic analytics for Next.js.",
    href: "https://github.com/upstash/agent-analytics"
  }];
  return <div className="u-grid u-grid--fixed2">
      {tools.map(tool => <a key={tool.href} href={tool.href} className="u-card u-tool">
          <div className="u-card__body">
            <div className="u-card__title">{tool.name}</div>
            <div className="u-card__desc">{tool.desc}</div>
          </div>
        </a>)}
    </div>;
};

export const ProductGrid = () => {
  const products = [{
    name: "Redis",
    desc: "Serverless Redis with per-request or fixed pricing.",
    href: "/redis/overall/getstarted",
    icon: "redis"
  }, {
    name: "QStash",
    desc: "Message queue and scheduler over HTTP.",
    href: "/qstash/overall/getstarted",
    icon: "qstash"
  }, {
    name: "Workflow",
    desc: "Durable serverless functions.",
    href: "/workflow/getstarted",
    icon: "workflow"
  }, {
    name: "Box",
    desc: "Secure sandboxes for AI agents and code.",
    href: "/box/overall/quickstart",
    icon: "box"
  }, {
    name: "Vector",
    desc: "Vector database for AI and LLM apps.",
    href: "/vector/overall/getstarted",
    icon: "vector"
  }, {
    name: "Search",
    desc: "Full-text and semantic search.",
    href: "/search/overall/getstarted",
    icon: "search"
  }, {
    name: "Blob",
    desc: "S3-compatible object storage with browser uploads.",
    href: "/blob/overall/quickstart",
    icon: "blob"
  }];
  return <div className="u-grid u-grid--fixed2">
      {products.map(product => <a key={product.href} href={product.href} className="u-card u-product">
          <img className="u-card__icon" src={`img/icons/${product.icon}.svg`} alt="" />
          <div className="u-card__body">
            <div className="u-card__title">{product.name}</div>
            <div className="u-card__desc">{product.desc}</div>
          </div>
        </a>)}
    </div>;
};

export const SectionHead = ({title, sub, divider = false}) => <div className={`u-section${divider ? " u-section--divider" : ""}`}>
    <h2>{title}</h2>
    {sub ? <p className="u-sub">{sub}</p> : null}
  </div>;

export const PromptToolIcons = () => <span className="u-prompt-tools" aria-hidden="true">
    <span className="u-prompt-tool">
      <svg viewBox="0 0 24 24" fill="currentColor">
        <path d="M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z" />
      </svg>
    </span>
    <span className="u-prompt-tool">
      <svg viewBox="0 0 24 24" fill="currentColor">
        <path d="M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.797.797 0 00-.856 0l-5.97 3.473zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.433.433 0 01.476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737v6.898zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33L12 15.128zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482 4.482 0 014.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.432.432 0 01-.476 0zm-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71c.286.167.571.167.856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523zm5.899 2.83a5.947 5.947 0 005.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947-.642 0-1.26.095-1.88.31A5.962 5.962 0 0010.205 0a5.947 5.947 0 00-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 004.162 1.713z" />
      </svg>
    </span>
    <span className="u-prompt-tool">
      <svg viewBox="0 0 24 24" fill="currentColor">
        <path d="M22.106 5.68L12.5.135a.998.998 0 00-.998 0L1.893 5.68a.84.84 0 00-.419.726v11.186c0 .3.16.577.42.727l9.607 5.547a.999.999 0 00.998 0l9.608-5.547a.84.84 0 00.42-.727V6.407a.84.84 0 00-.42-.726zm-.603 1.176L12.228 22.92c-.063.108-.228.064-.228-.061V12.34a.59.59 0 00-.295-.51l-9.11-5.26c-.107-.062-.063-.228.062-.228h18.55c.264 0 .428.286.296.514z" />
      </svg>
    </span>
  </span>;

export const Hero = ({children}) => <div className="u-hero">
    <h1>Build with Upstash</h1>
    <p>
      Serverless data, messaging, and AI infrastructure for developers. Scale to
      zero, pay per request.
    </p>
    <div className="u-actions">
      <a className="u-action u-action--primary" href="/agent-resources/mcp">
        Agent Setup
      </a>
      {children}
    </div>
  </div>;

<div className="u-wrap">
  <Hero>
    <div className="u-prompt-action">
      <PromptToolIcons />

      <Prompt actions={["copy"]}>
        Help me add the right Upstash product to this project. Review the project first, then choose Redis, Vector, QStash, Workflow, Search, Box, Realtime, or Rate Limit based on its needs. Use the current Upstash documentation at [https://upstash.com/docs](https://upstash.com/docs). Implement the smallest working setup, list the required environment variables, and add a quick verification step.
      </Prompt>
    </div>
  </Hero>

  <SectionHead divider title="Pick a product and start building" sub={<>See <a href="https://upstash.com/pricing">pricing</a> for each product's plans, billing, and limits.</>} />

  <ProductGrid />

  <SectionHead title="Developer Tools" sub="Useful tools to build with or alongside our core products." />

  <UtilityGrid />

  <SectionHead divider title="Connect with Upstash" sub="Join the community, read our blog, and follow us." />

  <Community />
</div>
