← Upstash RedisCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Upstash Redis
Snapshot Sep 30, 2026 · 23:07 UTC · version 1.2.1
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "upstash-qstash-js",
"description": "Work with the @upstash/qstash TypeScript/JavaScript SDK, an HTTP-based message queue, task scheduler, and background job system for serverless and edge runtimes (Next.js, Vercel, Cloudflare Workers, Deno, Node.js). Use when publishing messages to HTTP endpoints or URL groups, running background jobs without a long-running worker process, scheduling with cron expressions, delaying messages, building FIFO queues with parallelism and flow control, configuring retries and callbacks, handling a dead letter queue (DLQ), deduplicating messages, fanning out to multiple endpoints, verifying QStash webhook signatures (Next.js App Router, Pages Router, and Edge Runtime), running a local QStash dev server, or migrating regions. Also use when the user asks for a serverless cron job, async task queue, job scheduler, delayed delivery, webhook delivery with retries, or event-driven messaging between services.",
"included_files": [
{
"relative_path": "advanced/callbacks.md",
"size_in_bytes": 4672
},
{
"relative_path": "advanced/deduplication.md",
"size_in_bytes": 2251
},
{
"relative_path": "advanced/dlq.md",
"size_in_bytes": 4237
},
{
"relative_path": "advanced/multi-region/summary.md",
"size_in_bytes": 10786
},
{
"relative_path": "advanced/multi-region/verify-multi-region-setup.ts",
"size_in_bytes": 12932
},
{
"relative_path": "fundamentals/local-development.md",
"size_in_bytes": 4318
},
{
"relative_path": "fundamentals/publishing-messages.md",
"size_in_bytes": 3626
},
{
"relative_path": "fundamentals/queues-and-flow-control.md",
"size_in_bytes": 3983
},
{
"relative_path": "fundamentals/schedules.md",
"size_in_bytes": 4305
},
{
"relative_path": "fundamentals/url-groups.md",
"size_in_bytes": 3052
},
{
"relative_path": "verification/platform-specific/nextjs.md",
"size_in_bytes": 4309
},
{
"relative_path": "verification/receiver.md",
"size_in_bytes": 5332
}
],
"skill_md_contents": "---\nname: upstash-qstash-js\ndescription: Work with the @upstash/qstash TypeScript/JavaScript SDK, an HTTP-based message queue, task scheduler, and background job system for serverless and edge runtimes (Next.js, Vercel, Cloudflare Workers, Deno, Node.js). Use when publishing messages to HTTP endpoints or URL groups, running background jobs without a long-running worker process, scheduling with cron expressions, delaying messages, building FIFO queues with parallelism and flow control, configuring retries and callbacks, handling a dead letter queue (DLQ), deduplicating messages, fanning out to multiple endpoints, verifying QStash webhook signatures (Next.js App Router, Pages Router, and Edge Runtime), running a local QStash dev server, or migrating regions. Also use when the user asks for a serverless cron job, async task queue, job scheduler, delayed delivery, webhook delivery with retries, or event-driven messaging between services.\nlicense: MIT\nmetadata:\n author: Upstash\n homepage: https://upstash.com\n---\n\n# QStash JavaScript SDK\n\nQStash is an HTTP-based messaging and scheduling solution for serverless and edge runtimes. This skill helps you use the QStash JS SDK effectively.\n\n## When to use this skill\n\nUse this skill when:\n\n- Publishing HTTP messages to endpoints or URL groups\n- Creating scheduled or delayed message delivery\n- Managing FIFO queues with configurable parallelism\n- Verifying incoming webhook signatures from QStash\n- Implementing callbacks, DLQ handling, or message deduplication\n\n## Quick Start\n\n### Installing the SDK\n\n```bash\nnpm install @upstash/qstash\n```\n\n### Basic Publishing\n\n```typescript\nimport { Client } from \"@upstash/qstash\";\n\nconst client = new Client({\n token: process.env.QSTASH_TOKEN!,\n});\n\nconst result = await client.publishJSON({\n url: \"https://my-api.example.com/webhook\",\n body: { event: \"user.created\", userId: \"123\" },\n});\n```\n\n## Core Concepts\n\nFor fundamental QStash operations, see:\n\n- [Publishing Messages](fundamentals/publishing-messages.md)\n- [Schedules](fundamentals/schedules.md)\n- [Queues and Flow Control](fundamentals/queues-and-flow-control.md)\n- [URL Groups](fundamentals/url-groups.md)\n- [Local Development](fundamentals/local-development.md) — automatic dev server via `devMode: true`\n\nFor verifying incoming messages:\n\n- [Receiver Verification](verification/receiver.md) - Core signature verification with the Receiver class\n- Platform-Specific Verifiers:\n - [Next.js](verification/platform-specific/nextjs.md) - App Router, Pages Router, and Edge Runtime\n\nFor advanced features:\n\n- [Callbacks](advanced/callbacks.md)\n- [Dead Letter Queue (DLQ)](advanced/dlq.md)\n- [Message Deduplication](advanced/deduplication.md)\n- [Region migration & multi-region support](advanced/multi-region/summary.md)\n - If needed, [multi-region env variable setup verification script](advanced/multi-region/verify-multi-region-setup.ts). Can be run without arguments\n\n## Platform Support\n\nQStash JS SDK works across various platforms:\n\n- Next.js (App Router and Pages Router)\n- Cloudflare Workers\n- Deno\n- Node.js (v18+)\n- Vercel Edge Runtime\n- SvelteKit, Nuxt, SolidJS, and other frameworks\n\n> **Note on Workflow SDK:** For building complex durable workflows that chain multiple QStash messages together, consider using the separate QStash Workflow SDK (`@upstash/workflow`). The Workflow SDK empowers you to orchestrate multi-step processes with automatic state management, retries, and fault tolerance. This Skills file focuses on the core QStash messaging SDK.\n\n## Best Practices\n\n- Always verify incoming QStash messages using the Receiver class\n- Use environment variables for tokens and signing keys\n- Set appropriate retry counts and timeouts for your use case\n- Use queues for ordered processing with controlled parallelism\n- Implement DLQ handling for failed message recovery\n"
}SHA-256: 34c9cbf341c49f2b0d8c545938473d29ab6d04da214a446f6043f772d8a2eba3