diff --git a/box/overall/quickstart.mdx b/box/overall/quickstart.mdx
index dff9846b..e53c46b5 100644
--- a/box/overall/quickstart.mdx
+++ b/box/overall/quickstart.mdx
@@ -2,6 +2,8 @@
title: "Quickstart"
---
+import { Catalog } from "/snippets/catalog.jsx";
+
**Upstash Box lets you give your AI agents a computer.**
Every Upstash Box is a **secure, isolated cloud container with an AI Agent built-in**. Spin up as many as you want in parallel. Each one includes a full environment with a filesystem, shell, git, and a runtime. Your agent can read files, write code, and execute tasks inside it.
@@ -244,3 +246,24 @@ Great example use cases:
Boxes have Claude Code, Codex or OpenCode built-in.
+
+## Demos
+
+
+
+## Do more from the console
+
+Watch your agents work, stream logs, and manage sandboxes from the dashboard.
+
+
+
+
+ Manage and connect to your boxes from the terminal. Screenshot coming soon.
+
+
+
+
+ Stream logs from your running boxes in the console. Screenshot coming soon.
+
+
+
diff --git a/img/icons/box.svg b/img/icons/box.svg
new file mode 100644
index 00000000..3bffb3c9
--- /dev/null
+++ b/img/icons/box.svg
@@ -0,0 +1,11 @@
+
diff --git a/img/icons/context7.svg b/img/icons/context7.svg
new file mode 100644
index 00000000..b0ae11ed
--- /dev/null
+++ b/img/icons/context7.svg
@@ -0,0 +1,7 @@
+
diff --git a/img/icons/lang/python.svg b/img/icons/lang/python.svg
new file mode 100644
index 00000000..3af725cf
--- /dev/null
+++ b/img/icons/lang/python.svg
@@ -0,0 +1,8 @@
+
diff --git a/img/icons/lang/ruby.svg b/img/icons/lang/ruby.svg
new file mode 100644
index 00000000..7b44d41f
--- /dev/null
+++ b/img/icons/lang/ruby.svg
@@ -0,0 +1,7 @@
+
diff --git a/img/icons/lang/typescript.svg b/img/icons/lang/typescript.svg
new file mode 100644
index 00000000..15985c42
--- /dev/null
+++ b/img/icons/lang/typescript.svg
@@ -0,0 +1,7 @@
+
diff --git a/img/icons/qstash.svg b/img/icons/qstash.svg
new file mode 100644
index 00000000..7dc08adf
--- /dev/null
+++ b/img/icons/qstash.svg
@@ -0,0 +1,4 @@
+
diff --git a/img/icons/redis.svg b/img/icons/redis.svg
new file mode 100644
index 00000000..04757d34
--- /dev/null
+++ b/img/icons/redis.svg
@@ -0,0 +1,7 @@
+
diff --git a/img/icons/search.svg b/img/icons/search.svg
new file mode 100644
index 00000000..c5849e3d
--- /dev/null
+++ b/img/icons/search.svg
@@ -0,0 +1,11 @@
+
diff --git a/img/icons/vector.svg b/img/icons/vector.svg
new file mode 100644
index 00000000..339ece55
--- /dev/null
+++ b/img/icons/vector.svg
@@ -0,0 +1,8 @@
+
diff --git a/img/icons/workflow.svg b/img/icons/workflow.svg
new file mode 100644
index 00000000..657ee0bd
--- /dev/null
+++ b/img/icons/workflow.svg
@@ -0,0 +1,4 @@
+
diff --git a/introduction.mdx b/introduction.mdx
index 41dc6bd4..7f9a1dd6 100644
--- a/introduction.mdx
+++ b/introduction.mdx
@@ -1,52 +1,28 @@
---
title: Get Started
+description: Serverless data and messaging for developers — Redis, Vector, QStash, Workflow, Search, and Box, with SDKs, integrations, and a full-featured console.
+mode: frame
---
-
-
- Create a Redis Database within seconds
-
-
- Create a Vector Database for AI & LLMs
-
-
- Publish your first message
-
-
- Write durable serverless functions
-
-
- Run AI agents and code in secure sandboxes
-
-
+import { Hero, SectionHead, ProductGrid, AgentResources, Concepts, Community } from "/snippets/landing.jsx";
+import { Migrate } from "/snippets/migrate.jsx";
-## Concepts
+
-
-
- Upstash is serverless. You don't need to provision any infrastructure. Just
- create a database and start using it.
-
-
- Price scales to zero. You don't pay for idle or unused resources. You pay
- only for what you use.
-
-
- Upstash Redis replicates your data for the best latency all over the world.
-
-
- Upstash REST APIs enable access from all types of runtimes.
-
-
+
+
+
+
-## Get In touch
+
+
-
-
- Follow us on X for the latest news and updates.
-
-
- Join our Discord Community and ask your questions to the team and other
- developers.
-
-
+
+
+
+
+
+
+
+
+
diff --git a/llms-full.txt b/llms-full.txt
index 7b63a2f1..e8961183 100644
--- a/llms-full.txt
+++ b/llms-full.txt
@@ -5021,6 +5021,8 @@ Please check our [pricing page](https://upstash.com/pricing/box) for the most up
# Quickstart
Source: https://upstash.com/docs/box/overall/quickstart
+import { Catalog } from "/snippets/catalog.jsx";
+
**Upstash Box lets you give your AI agents a computer.**
Every Upstash Box is a **secure, isolated cloud container with an AI Agent built-in**. Spin up as many as you want in parallel. Each one includes a full environment with a filesystem, shell, git, and a runtime. Your agent can read files, write code, and execute tasks inside it.
@@ -5262,6 +5264,27 @@ Great example use cases:
+## Demos
+
+
+
+## Do more from the console
+
+Watch your agents work, stream logs, and manage sandboxes from the dashboard.
+
+
+
+
+ Manage and connect to your boxes from the terminal. Screenshot coming soon.
+
+
+
+
+ Stream logs from your running boxes in the console. Screenshot coming soon.
+
+
+
+
# Schedules
Source: https://upstash.com/docs/box/overall/schedules
@@ -8485,54 +8508,28 @@ Secondary: #00E9A3 (Cyan Green)
# Get Started
Source: https://upstash.com/docs/introduction
-
-
- Create a Redis Database within seconds
-
-
- Create a Vector Database for AI & LLMs
-
-
- Publish your first message
-
-
- Write durable serverless functions
-
-
- Run AI agents and code in secure sandboxes
-
-
+import { Hero, SectionHead, ProductGrid, AgentResources, Concepts, Community } from "/snippets/landing.jsx";
+import { Migrate } from "/snippets/migrate.jsx";
-## Concepts
+
-
-
- Upstash is serverless. You don't need to provision any infrastructure. Just
- create a database and start using it.
-
-
- Price scales to zero. You don't pay for idle or unused resources. You pay
- only for what you use.
-
-
- Upstash Redis replicates your data for the best latency all over the world.
-
-
- Upstash REST APIs enable access from all types of runtimes.
-
-
+
+
+
+
-## Get In touch
+
+
-
-
- Follow us on X for the latest news and updates.
-
-
- Join our Discord Community and ask your questions to the team and other
- developers.
-
-
+
+
+
+
+
+
+
+
+
# Bulk Delete DLQ messages
Source: https://upstash.com/docs/qstash/api-reference/dlq/bulk-delete-dlq-messages
@@ -13765,6 +13762,8 @@ Enterprise customers receive dedicated resources to ensure isolation and consist
# Getting Started
Source: https://upstash.com/docs/qstash/overall/getstarted
+import { Catalog } from "/snippets/catalog.jsx";
+
QStash is a **serverless messaging and scheduling solution**. It fits easily into your existing workflow and allows you to build reliable systems without managing infrastructure.
Instead of calling an endpoint directly, QStash acts as a middleman between you and an API to guarantee delivery, perform automatic retries on failure, and more.
@@ -13913,6 +13912,30 @@ Learn more about different states [here](/docs/qstash/howto/debug-logs).
+## SDKs
+
+
+
+## Integrations
+
+
+
+## Do more from the console
+
+Inspect messages, retries, and schedules without leaving the dashboard.
+
+
+
+
+
+
+
+
+
+
+
+
+
# llms.txt
Source: https://upstash.com/docs/qstash/overall/llms-txt
@@ -20780,6 +20803,9 @@ A Business Associate Agreement (BAA) and HIPAA compliance enablement is availabl
# Getting Started
Source: https://upstash.com/docs/redis/overall/getstarted
+import { Catalog } from "/snippets/catalog.jsx";
+import { Migrate } from "/snippets/migrate.jsx";
+
Upstash Redis is a **highly available, infinitely scalable** Redis-compatible database:
* 99.99% uptime guarantee with auto-scaling ([Prod Pack](/docs/redis/overall/enterprise#prod-pack-features))
@@ -20857,6 +20883,38 @@ Manage Upstash Redis databases from Claude and other AI tools by using our [MCP
* [REST API](/docs/redis/features/restapi): connect from edge and serverless runtimes where TCP is restricted.
* [Pricing & Billing](/docs/redis/overall/billing): free tier, Pay-As-You-Go, and Fixed plan limits, plus how billing works.
+## SDKs
+
+
+
+## Integrations
+
+
+
+## Do more from the console
+
+Browse your data, watch metrics, and inspect rate limits without leaving the dashboard.
+
+
+
+
+ Browse, search, and edit your keys directly in the console. Screenshot coming soon.
+
+
+
+
+
+
+
+
+
+
+## Migrate to Upstash
+
+Moving from another Redis provider? Migration guides are on the way.
+
+
+
# llms.txt
Source: https://upstash.com/docs/redis/overall/llms-txt
@@ -33018,6 +33076,8 @@ For more details on how this integration works, check out [the official reposito
# Getting Started
Source: https://upstash.com/docs/search/overall/getstarted
+import { Catalog } from "/snippets/catalog.jsx";
+
***
+
+## Integrations
+
+
+
# Pricing & Limits
Source: https://upstash.com/docs/search/overall/pricing
@@ -41064,6 +41132,8 @@ Source: https://upstash.com/docs/vector/overall/compare
# Getting Started
Source: https://upstash.com/docs/vector/overall/getstarted
+import { Catalog } from "/snippets/catalog.jsx";
+
**Prerequisite**
@@ -41280,6 +41350,14 @@ You can also query your index with a simple UI:
+## SDKs
+
+
+
+## Integrations
+
+
+
# llms.txt
Source: https://upstash.com/docs/vector/overall/llms-txt
@@ -48564,6 +48642,8 @@ Choose webhooks when integrating with external services that support callback UR
# Overview
Source: https://upstash.com/docs/workflow/getstarted
+import { Catalog } from "/snippets/catalog.jsx";
+
Upstash Workflow lets you write **durable, reliable and performant serverless functions**. Get delivery guarantees, automatic retries on failure, scheduling and more without managing any infrastructure.
+
+## Demos
+
+
+
+## Do more from the console
+
+Watch runs, inspect steps, and manage failures without leaving the dashboard.
+
+
+
+
+
+
+
+
+
+
+
+
+
# Cancel a Run
Source: https://upstash.com/docs/workflow/howto/cancel
diff --git a/llms.txt b/llms.txt
index 0ecc69b1..20988630 100644
--- a/llms.txt
+++ b/llms.txt
@@ -137,7 +137,7 @@
- [upstash_redis_database](https://upstash.com/docs/devops/terraform/resources/upstash_redis_database.md): Create and manage Upstash Redis databases.
- [upstash_team](https://upstash.com/docs/devops/terraform/resources/upstash_team.md): Create and manage teams on Upstash.
- [Bg color codes](https://upstash.com/docs/img/bg-color-codes.md)
-- [Get Started](https://upstash.com/docs/introduction.md)
+- [Get Started](https://upstash.com/docs/introduction.md): Serverless data and messaging for developers — Redis, Vector, QStash, Workflow, Search, and Box, with SDKs, integrations, and a full-featured console.
- [Bulk Delete DLQ messages](https://upstash.com/docs/qstash/api-reference/dlq/bulk-delete-dlq-messages.md): Delete multiple messages from the DLQ
- [Bulk Retry DLQ messages](https://upstash.com/docs/qstash/api-reference/dlq/bulk-retry-dlq-messages.md): Retry delivery of multiple messages from the DLQ
- [Delete a DLQ message](https://upstash.com/docs/qstash/api-reference/dlq/delete-a-dlq-message.md): Manually remove a message from the DLQ
diff --git a/qstash/overall/getstarted.mdx b/qstash/overall/getstarted.mdx
index da759d35..f5edfa09 100644
--- a/qstash/overall/getstarted.mdx
+++ b/qstash/overall/getstarted.mdx
@@ -2,6 +2,8 @@
title: "Getting Started"
---
+import { Catalog } from "/snippets/catalog.jsx";
+
QStash is a **serverless messaging and scheduling solution**. It fits easily into your existing workflow and allows you to build reliable systems without managing infrastructure.
Instead of calling an endpoint directly, QStash acts as a middleman between you and an API to guarantee delivery, perform automatic retries on failure, and more.
@@ -159,3 +161,33 @@ Learn more about different states [here](/qstash/howto/debug-logs).
+## SDKs
+
+
+
+## Integrations
+
+
+
+## Do more from the console
+
+Inspect messages, retries, and schedules without leaving the dashboard.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/redis/overall/getstarted.mdx b/redis/overall/getstarted.mdx
index 23e98d02..df727c37 100755
--- a/redis/overall/getstarted.mdx
+++ b/redis/overall/getstarted.mdx
@@ -3,6 +3,9 @@ title: Getting Started
description: Create an Upstash Redis database in seconds
---
+import { Catalog } from "/snippets/catalog.jsx";
+import { Migrate } from "/snippets/migrate.jsx";
+
Upstash Redis is a **highly available, infinitely scalable** Redis-compatible database:
- 99.99% uptime guarantee with auto-scaling ([Prod Pack](/redis/overall/enterprise#prod-pack-features))
@@ -85,3 +88,39 @@ Manage Upstash Redis databases from Claude and other AI tools by using our [MCP
- [Upstash Redis Search](/redis/search/introduction): full-text search built into Upstash Redis.
- [REST API](/redis/features/restapi): connect from edge and serverless runtimes where TCP is restricted.
- [Pricing & Billing](/redis/overall/billing): free tier, Pay-As-You-Go, and Fixed plan limits, plus how billing works.
+
+## SDKs
+
+
+
+## Integrations
+
+
+
+## Do more from the console
+
+Browse your data, watch metrics, and inspect rate limits without leaving the dashboard.
+
+
+
+
+ Browse, search, and edit your keys directly in the console. Screenshot coming soon.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Migrate to Upstash
+
+Moving from another Redis provider? Migration guides are on the way.
+
+
diff --git a/search/overall/getstarted.mdx b/search/overall/getstarted.mdx
index 269b93d9..2f6b9261 100644
--- a/search/overall/getstarted.mdx
+++ b/search/overall/getstarted.mdx
@@ -3,6 +3,8 @@ title: Getting Started
description: Creating an Upstash Search Database
---
+import { Catalog } from "/snippets/catalog.jsx";
+
---
+
+## Integrations
+
+
diff --git a/snippets/catalog.jsx b/snippets/catalog.jsx
new file mode 100644
index 00000000..7b9b5d1b
--- /dev/null
+++ b/snippets/catalog.jsx
@@ -0,0 +1,93 @@
+// Single source of truth for SDKs, integrations, and demos across the docs.
+//
+// Renders custom-styled cards (see .u-card in style.css) with a programming-language
+// icon per card. Used on each product landing (filtered via the `product` prop).
+//
+// NOTE (Mintlify constraint, validated): an exported component CANNOT reference a
+// sibling module-level `export const`. Mintlify compiles each export in isolation,
+// so the data array MUST live inside the component's own function body.
+//
+// Fields: { title, description, href, product, type, lang, featured? }
+// product: "redis" | "vector" | "qstash" | "workflow" | "search" | "box" (or an array)
+// type: "sdk" | "integration" | "demo"
+// lang: "typescript" | "python" | "ruby" (icon in img/icons/lang/.svg)
+
+export const Catalog = ({ product, type, featured, cols = 3 }) => {
+ const catalog = [
+ // ---------- SDKs ----------
+ { title: "@upstash/redis", description: "HTTP-based Redis client for serverless and edge.", href: "/redis/sdks/ts/overview", product: "redis", type: "sdk", lang: "typescript", featured: true },
+ { title: "upstash-redis (Python)", description: "Serverless Redis client for Python.", href: "/redis/sdks/py/overview", product: "redis", type: "sdk", lang: "python" },
+ { title: "@upstash/ratelimit", description: "Rate limiting for serverless, built on Redis.", href: "/redis/sdks/ratelimit-ts/overview", product: "redis", type: "sdk", lang: "typescript", featured: true },
+ { title: "ratelimit (Python)", description: "Rate limiting SDK for Python.", href: "/redis/sdks/ratelimit-py/overview", product: "redis", type: "sdk", lang: "python" },
+ { title: "@upstash/vector", description: "Vector database client for AI and LLM apps.", href: "/vector/sdks/ts/getting-started", product: "vector", type: "sdk", lang: "typescript", featured: true },
+ { title: "upstash-vector (Python)", description: "Vector database client for Python.", href: "/vector/sdks/py/gettingstarted", product: "vector", type: "sdk", lang: "python" },
+ { title: "@upstash/qstash", description: "Publish messages and schedule jobs over HTTP.", href: "/qstash/sdks/ts/overview", product: "qstash", type: "sdk", lang: "typescript", featured: true },
+ { title: "qstash-py", description: "QStash messaging and scheduling for Python.", href: "/qstash/sdks/py/overview", product: "qstash", type: "sdk", lang: "python" },
+ { title: "@upstash/workflow", description: "Durable serverless functions and workflows.", href: "/workflow/getstarted", product: "workflow", type: "sdk", lang: "typescript", featured: true },
+ { title: "@upstash/search", description: "Full-text and semantic search client.", href: "/search/sdks/ts/getting-started", product: "search", type: "sdk", lang: "typescript", featured: true },
+
+ // ---------- Integrations ----------
+ { title: "BullMQ", description: "Message queue built on Redis.", href: "/redis/integrations/bullmq", product: "redis", type: "integration", lang: "typescript", featured: true },
+ { title: "Drizzle", description: "Cache Drizzle ORM queries with Upstash Redis.", href: "/redis/integrations/drizzle", product: "redis", type: "integration", lang: "typescript", featured: true },
+ { title: "Celery", description: "Use Upstash Redis as a Celery broker.", href: "/redis/integrations/celery", product: "redis", type: "integration", lang: "python" },
+ { title: "Sidekiq", description: "Background jobs for Ruby on Upstash Redis.", href: "/redis/integrations/sidekiq", product: "redis", type: "integration", lang: "ruby" },
+ { title: "MCP Server", description: "Manage Upstash Redis from AI agents via MCP.", href: "/redis/integrations/mcp", product: "redis", type: "integration", lang: "typescript" },
+ { title: "n8n (Redis)", description: "Automate workflows with Redis nodes in n8n.", href: "/redis/integrations/n8n", product: "redis", type: "integration", lang: "typescript" },
+ { title: "Prometheus (Redis)", description: "Scrape Upstash Redis metrics into Prometheus.", href: "/redis/integrations/prometheus", product: "redis", type: "integration", lang: "typescript" },
+ { title: "LangChain", description: "Vector store integration for LLM apps.", href: "/vector/integrations/langchain", product: "vector", type: "integration", lang: "python", featured: true },
+ { title: "Vercel AI SDK", description: "Back the AI SDK with Upstash Vector.", href: "/vector/integrations/ai-sdk", product: "vector", type: "integration", lang: "typescript", featured: true },
+ { title: "LlamaIndex", description: "Use Upstash Vector as a LlamaIndex store.", href: "/vector/integrations/llamaindex", product: "vector", type: "integration", lang: "python" },
+ { title: "Flowise", description: "Build LLM flows on Upstash Vector.", href: "/vector/integrations/flowise", product: "vector", type: "integration", lang: "typescript" },
+ { title: "Langflow", description: "Visual LLM apps backed by Upstash Vector.", href: "/vector/integrations/langflow", product: "vector", type: "integration", lang: "python" },
+ { title: "LlamaParse", description: "Parse and index documents into Upstash Vector.", href: "/vector/integrations/llamaparse", product: "vector", type: "integration", lang: "python" },
+ { title: "Resend", description: "Send emails from QStash workflows.", href: "/qstash/integrations/resend", product: "qstash", type: "integration", lang: "typescript", featured: true },
+ { title: "Anthropic", description: "Call Claude reliably through QStash.", href: "/qstash/integrations/anthropic", product: "qstash", type: "integration", lang: "typescript" },
+ { title: "LLM APIs", description: "Queue and retry LLM calls with QStash.", href: "/qstash/integrations/llm", product: "qstash", type: "integration", lang: "typescript" },
+ { title: "Datadog", description: "Monitor QStash with Datadog.", href: "/qstash/integrations/datadog", product: "qstash", type: "integration", lang: "typescript" },
+ { title: "Pipedream", description: "Trigger Pipedream workflows from QStash.", href: "/qstash/integrations/pipedream", product: "qstash", type: "integration", lang: "typescript" },
+ { title: "n8n (QStash)", description: "Publish QStash messages from n8n.", href: "/qstash/integrations/n8n", product: "qstash", type: "integration", lang: "typescript" },
+ { title: "Docusaurus", description: "Add full-text search to a Docusaurus site.", href: "/search/integrations/docusaurus", product: "search", type: "integration", lang: "typescript" },
+
+ // ---------- Demos ----------
+ { title: "AI SDK Code Interpreter", description: "Run AI-generated code in a Box sandbox.", href: "/box/guides/ai-sdk-code-interpreter", product: "box", type: "demo", lang: "typescript", featured: true },
+ { title: "E-commerce Order Fulfillment", description: "Durable order processing with Workflow.", href: "/workflow/examples/eCommerceOrderFulfillment", product: "workflow", type: "demo", lang: "typescript", featured: true },
+ { title: "Image Processing", description: "Fan-out image jobs with Workflow.", href: "/workflow/examples/imageProcessing", product: "workflow", type: "demo", lang: "typescript", featured: true },
+ { title: "Customer Onboarding", description: "Multi-step onboarding flow with delays.", href: "/workflow/examples/customerOnboarding", product: "workflow", type: "demo", lang: "typescript" },
+ { title: "Payment Retry", description: "Retry failed payments with backoff.", href: "/workflow/examples/paymentRetry", product: "workflow", type: "demo", lang: "typescript" },
+ { title: "Wait for Event", description: "Pause a workflow until an external event.", href: "/workflow/examples/waitForEvent", product: "workflow", type: "demo", lang: "typescript" },
+ { title: "Auth Webhook", description: "Handle auth webhooks durably.", href: "/workflow/examples/authWebhook", product: "workflow", type: "demo", lang: "typescript" },
+ ];
+
+ const matchesProduct = (entry) =>
+ !product ||
+ (Array.isArray(entry.product)
+ ? entry.product.includes(product)
+ : entry.product === product);
+
+ const items = catalog.filter(
+ (entry) =>
+ matchesProduct(entry) &&
+ (!type || entry.type === type) &&
+ (!featured || entry.featured),
+ );
+
+ const gridClass = "u-grid " + (cols >= 3 ? "u-grid--3" : "u-grid--2");
+
+ return (
+