PageSourceSearch

https://upstash.com/_next/static/chunks/08zs2kwpod9xd.js?dpl=dpl_9SKyzJrSDLt5YNDY4JY8BY98fgnZ

js upstash.com collected 2026-10-02 02:25:04 UTC 163,034 bytes, 676 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,54807,(e,t,s)=>{Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python},52683,e=>{"use strict";var t,s=e.i(82624),r=e.i(54051),n=e.i(29158),a=e.i(78085),o=e.i(72395);function i({children:e,className:t,...r}){return(0,s.jsx)("header",{className:(0,o.default)("mx-auto max-w-screen-md",t),...r,children:e})}function l({children:e,className:t,...r}){return(0,s.jsx)("h2",{className:(0,o.default)("font-display text-4xl font-semibold md:text-5xl",t),...r,children:e})}function c({children:e,className:t,...r}){return(0,s.jsx)("p",{className:(0,o.default)("mx-4 mt-2 text-balance text-lg opacity-50 md:mx-auto md:text-2xl",t),...r,children:e})}var d=e.i(409);let u=["Claude Code","OpenAI Codex","Cursor"];function h({className:e,children:t}){return(0,s.jsxs)("div",{className:(0,o.default)("group relative flex flex-col overflow-hidden p-6 text-left md:p-8","rounded-3xl border border-black/5 bg-white shadow-sm md:rounded-4xl","hover:border-primary/30 transition-colors duration-300","dark:border-white/10 dark:bg-white/5",e),children:[(0,s.jsx)("div",{"aria-hidden":!0,className:(0,o.default)("bg-primary/20 absolute -right-16 -top-16 -z-0 size-44 rounded-full blur-3xl","opacity-40 transition-all duration-500 group-hover:scale-150 group-hover:opacity-70")}),(0,s.jsx)("div",{className:"relative z-10 flex h-full flex-col",children:t})]})}function p({href:e,children:t}){return(0,s.jsxs)("a",{href:e,target:"_blank",className:(0,o.default)("mt-6 inline-flex items-center gap-1.5 font-medium text-primary-text","transition hover:text-primary"),children:[t,(0,s.jsx)(d.IconArrowRight,{size:18,className:"transition-transform duration-300 group-hover:translate-x-1"})]})}function m({command:e}){return(0,s.jsxs)("div",{className:(0,o.default)("flex items-center gap-3 rounded-2xl px-4 py-3","border border-white/10 bg-pre-bg"),children:[(0,s.jsxs)("code",{className:"no-scrollbar grow overflow-x-auto whitespace-nowrap text-left font-mono text-xs text-emerald-400 md:text-sm",children:[(0,s.jsx)("span",{className:"select-none opacity-50",children:"$ "}),e]}),(0,s.jsx)(a.default,{code:e,className:"shrink-0 text-zinc-400 hover:text-emerald-400"})]})}function x(){return(0,s.jsxs)("section",{className:"relative z-10 py-16 md:py-24",children:[(0,s.jsx)(r.default,{}),(0,s.jsxs)(n.default,{children:[(0,s.jsxs)(i,{children:[(0,s.jsx)(l,{children:"Built for AI Agents"}
1),(0,s.jsx)(c,{children:"Everything your coding agent needs to build, manage, and debug Upstash resources"})]}),(0,s.jsxs)("div",{className:"mt-10 grid gap-4 md:mt-16 md:gap-6 lg:grid-cols-2",children:[(0,s.jsx)(h,{className:"lg:col-span-2",children:(0,s.jsxs)("div",{className:"flex flex-col gap-8 lg:flex-row lg:items-center lg:gap-12",children:[(0,s.jsxs)("div",{className:"flex flex-col items-start lg:w-1/2",children:[(0,s.jsx)("h3",{className:"font-display text-xl font-semibold md:text-2xl",children:"Skills"}),(0,s.jsx)("p",{className:"mt-2 text-text-mute md:mt-3",children:"Packaged instructions covering every Upstash SDK plus the full CLI reference. Your agent loads only the sections it needs. No context bloat, no stale docs."}),(0,s.jsx)(p,{href:"https://upstash.com/docs/agent-resources/skills",children:"Explore Upstash Skills"})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-4 lg:w-1/2",children:[(0,s.jsx)(m,{command:"npx skills add https://github.com/upstash/skills --skill upstash"}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)("span",{className:"text-sm text-text-mute",children:"Works with"}),u.map(e=>(0,s.jsx)("span",{className:(0,o.default)("rounded-full px-3 py-1 text-sm font-medium","border border-black/5 bg-bg-mute text-text","dark:border-white/5"),children:e},e)),(0,s.jsx)("span",{className:(0,o.default)("rounded-full px-3 py-1 text-sm font-medium","border border-dashed border-black/15 text-text-mute","dark:border-white/15"),children:"and more"})]})]})]})}),(0,s.jsxs)(h,{children:[(0,s.jsx)("h3",{className:"font-display text-xl font-semibold md:text-2xl",children:"MCP Server"}),(0,s.jsx)("p",{className:"mt-2 grow text-text-mute md:mt-3",children:"Manage and debug your resources straight from your editor: create databases, analyze QStash logs, retry failed workflow runs. Read-only API keys supported."}),(0,s.jsx)(p,{href:"https://upstash.com/docs/agent-resources/mcp",children:"Set up the Upstash MCP Server"})]}),(0,s.jsxs)(h,{children:[(0,s.jsx)("h3",{className:"font-display text-xl font-semibold md:text-2xl",children:"CLI"}),(0,s.jsx)("p",{className:"mt-2 grow text-text-mute md:mt-3",children:"Full resource management from the terminal or CI/CD, with JSON output built for scripting and agents."}),(0,s.jsx)("div",{className:"mt-4",children:(0,s.jsx)(m,{command:"npm i -g @upstash/cli"})}),(0,s.jsx)(p,{href:"https://upstash.com/docs/agent-resources/cli",children:"Explore the Upstash CLI"})]})]})]})]})}var C=e.i(88915),f=e.i(21076),g=e.i(70293),w=e.i(93435),b=e.i(22243);function j({children:e,className:t,...r}){return(0,s.jsx)("div",{className:(0,o.default)("group flex flex-col items-center p-6 md:p-8","bg-white transition dark:bg-bg-mute","rounded-lg first:rounded-t-3xl last:rounded-b-3xl","md:rounded-lg md:first:rounded-t-lg md:last:rounded-b-lg","lg:first:rounded-t-lg lg:last:rounded-b-lg","lg:first:!rounded-l-4xl lg:last:!rounded-r-4xl","hover:shadow-xl",t),...r,children:e})}function v({children:e,className:t,...r}){return(0,s.jsx)("h3",{className:(0,o.default)("font-display text-xl font-semibold group-hover:text-primary md:text-2xl",t),...r,children:e})}function y({children:e,className:t,...r}){return(0,s.jsx)("p",{className:(0,o.default)("mb-4 mt-2 text-text-mute sm:mb-6",t),...r,children:e})}function L({children:e,className:t,...r}){return(0,s.jsx)(w.default,{asChild:!0,className:(0,o.default)("",t),children:(0,s.jsxs)("a",{target:"_blank",...r,children:[e,(0,s.jsx)(b.IconArrowUpRight,{size:20})]})})}function k(){return(0,s.jsxs)("section",{className:"relative z-10 py-8 md:py-16",children:[(0,s.jsx)(f.default,{section:"community"}),(0,s.jsx)(r.default,{}),(0,s.jsxs)(n.default,{children:[(0,s.jsxs)(i,{children:[(0,s.jsx)(l,{children:"Community"}),(0,s.jsx)(c,{children:"The help you need, when you need it"})]}),(0,s.jsxs)("div",{className:"mt-10 grid gap-2 md:mt-20 md:grid-cols-2 lg:grid-cols-4",children:[(0,s.jsxs)(j,{children:[(0,s.jsx)(C.default,{icon:C.ICON_NAMES.FileText,className:"mb-4 hidden text-4xl group-hover:text-primary sm:inline-flex md:text-5xl",strokeWidth:"1"}),(0,s.jsx)(v,{children:"Blog"}),(0,s.jsx)(y,{children:"Read the latest news and product updates from the Upstash Blog."}),(0,s.jsx)(L,{href:"https://upstash.com/blog",children:"Read"})]}),(0,s.jsxs)(j,{children:[(0,s.jsx)(C.default,{icon:C.ICON_NAMES.Discord,className:"mb-4 hidden text-4xl group-hover:text-primary sm:inline-flex md:text-5xl",strokeWidth:"1"}),(0,s.jsx)(v,{children:"Discord"}),(0,s.jsx)(y,{children:"Join our Discord community to chat with other developers and the Upstash team."}),(0,s.jsx)(L,{href:"https://upstash.com/discord",children:"Join"})]}),(0,s.jsxs)(j,{children:[(0,s.jsx)(g.IconBrandX,{size:48,className:"mb-4 hidden text-4xl group-hover:text-primary sm:inline-flex md:text-5xl",strokeWidth:1}),(0,s.jsx)(v,{children:"X"}),(0,s.jsx)(y,{children:"Follow us on X to stay up to date with the latest news from Upstash."}),(0,s.jsx)(L,{href:"https://twitter.com/upstash",children:"Follow"})]}),(0,s.jsxs)(j,{children:[(0,s.jsx)(C.default,{icon:C.ICON_NAMES.Github,className:"mb-4 hidden text-4xl group-hover:text-primary sm:inline-flex md:text-5xl",strokeWidth:"1"}),(0,s.jsx)(v,{children:"Github"}),(0,s.jsx)(y,{children:"You can view all the projects we have developed as open source on our Github page."}),(0,s.jsx)(L,{href:"https://github.com/upstash",children:"View"})]})]})]})]})}let H=[{question:"What is Upstash?",answer:"Upstash is a serverless data platform. It provides fully managed Redis, Vector, Search, QStash messaging, Workflow, Box sandboxes, and Blob object storage, all with per-request pricing and no servers to provision. You create a database in seconds and connect over HTTP or native protocols from any runtime."},{question:"Is Upstash free to use?",answer:"Yes. Every Upstash product has a free tier for prototypes and small workloads, with no credit card required to start. You can move to pay-as-you-go or fixed monthly plans as your usage grows."},{question:"What products does Upstash offer?",answer:"Upstash offers serverless Redis, Vector for embeddings and similarity search, Search for full-text and hybrid search, QStash for messaging and scheduling, Workflow for durable serverless functions, Box for sandboxed cloud containers that run AI agents and code, and Blob for S3-compatible object storage with direct browser uploads."},{question:"How is Upstash priced?",answer:"Upstash uses pay-as-you-go pricing, so you pay per request instead of for al
1ways-on servers. Each product also offers fixed monthly plans with predictable costs, plus a free tier to get started."},{question:"Is Upstash Redis compatible with Redis?",answer:"Yes. Upstash Redis is API-compatible with Redis and works with standard Redis clients over the Redis protocol, as well as a built-in HTTP REST API that works from serverless and edge runtimes without connection pooling."},{question:"Can I get an Upstash Redis database without authentication?",answer:"Yes. A free Redis database is available via a POST request to https://upstash.com/start-redis - no signup or API key required. The response is markdown with credentials and a quickstart, designed for AI agents. The database can later be claimed into an account from the console link in the response."},{question:"Where does Upstash run?",answer:"Upstash runs globally across multiple regions with optional multi-region replication, so you can keep data close to your users for low latency. The HTTP APIs make it a natural fit for serverless and edge platforms."}];var S=e.i(72667);function V(){let e=(0,S.generateFaqSchema)({faq:H});return(0,s.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:e}})}function M({children:e,className:t,...r}){return(0,s.jsx)("div",{className:(0,o.default)("",t),...r,children:e})}function N({children:e,className:t,...r}){return(0,s.jsx)("div",{className:(0,o.default)("font-display text-lg font-semibold tabular-nums text-primary-text md:text-3xl",t),...r,children:e})}function _({children:e,className:t,...r}){return(0,s.jsx)("h3",{className:"text-sm opacity-60 md:mt-1 md:text-base",...r,children:e})}function R(){return(0,s.jsx)(s.Fragment,{children:(0,s.jsxs)("div",{className:(0,o.default)("grid grid-cols-2 items-center gap-4 p-6 shadow-md md:grid-cols-4","rounded-2xl bg-bg backdrop-blur dark:bg-bg-mute","md:gap-12 md:rounded-4xl md:px-12 md:py-6"),children:[(0,s.jsxs)(M,{children:[(0,s.jsx)(N,{children:"160B"}),(0,s.jsx)(_,{children:"Redis Commands"})]}),(0,s.jsxs)(M,{children:[(0,s.jsx)(N,{children:"210M"}),(0,s.jsx)(_,{children:"QStash Messages"})]}),(0,s.jsxs)(M,{children:[(0,s.jsx)(N,{children:"15M"}),(0,s.jsx)(_,{children:"Workflow Runs"})]}),(0,s.jsxs)(M,{children:[(0,s.jsxs)(N,{children:[">","99.99%"]}),(0,s.jsx)(_,{children:"Uptime"})]})]})})}var Z=((t={}).HERO="hero",t.FAST="fast",t.SERVERLESS="serverless",t.PRODUCTS="products",t.PRICING="pricing",t.OPEN_SOURCE="open-source",t.INVESTORS="investors",t.COMMUNITY="community",t);function E(){return(0,s.jsxs)("section",{id:Z.FAST,className:"relative -z-10 mt-20 h-[320px] overflow-hidden sm:h-[400px] md:mt-32 xl:h-[500px]",children:[(0,s.jsx)(f.default,{section:"fast"}),(0,s.jsx)(r.default,{className:"!top-24"}),(0,s.jsx)("h2",{style:{animationDuration:"4s"},className:(0,o.default)("absolute inset-x-0 -z-20","font-display text-[12vw] font-bold leading-tight xl:text-[180px]","whitespace-nowrap","bg-gradient-to-br bg-clip-text text-transparent","animate-pulse from-primary-text via-primary to-yellow-300"),children:"Fast Anywhere"}),(0,s.jsx)("img",{src:"/globe-light.webp",alt:"upstash region map",className:(0,o.default)("absolute inset-x-0 left-1/2 top-[8vw] -z-10 -translate-x-1/2 xl:top-[110px] dark:hidden","w-full max-w-screen-2xl rounded-full","shadow-[0px_0px_80px_rgba(16,185,129,.3)]")}),(0,s.jsx)("img",{src:"/globe-dark.webp",alt:"upstash region map",className:(0,o.default)("absolute inset-x-0 left-1/2 top-[8vw] -z-10 hidden -translate-x-1/2 xl:top-[110px] dark:block","w-full max-w-screen-2xl rounded-full","shadow-[0px_0px_80px_rgba(16,185,129,.3)]")}),(0,s.jsx)("div",{className:(0,o.default)("pointer-events-none absolute inset-x-0 bottom-0 z-10 h-[260px]","bg-gradient-to-b from-transparent to-bg","dark:from-transparent dark:to-bg")}),(0,s.jsxs)("div",{className:"absolute inset-x-0 bottom-0 z-20 flex flex-col items-center justify-center",children:[(0,s.jsx)(R,{}),(0,s.jsx)("p",{className:"mt-2 italic",children:"* weekly average"})]})]})}var P=e.i(75679),O=e.i(94080),A=e.i(54485),T=e.i(56998),I=e.i(26012),B=e.i(83006),z=e.i(65278);let D=[{id:"prompt",label:"Copy setup prompt",value:"Set up Upstash in my coding agent using the official Upstash instructions, and run the commands yourself instead of asking me to. If you are Claude Code, install the Upstash plugin — it bundles the Upstash skills (https://upstash.com/docs/agent-resources/skills) and the remote MCP server over OAuth — by running `claude plugin marketplace add upstash/skills` then `claude plugin install upstash@upstash`, and tell me to run `/reload-plugins`. If you are OpenAI Codex, install the same plugin with `codex plugin marketplace add upstash/skills` then `co
1dex plugin add upstash@upstash`. For any other agent, install the skills with `npx -y skills add upstash/skills --global`, then add the remote MCP server https://mcp.upstash.com/mcp to your MCP config (it authenticates over OAuth on first use); see https://upstash.com/docs/agent-resources/clients for the exact location. When done, verify the skills and MCP server are installed and tell me whether a restart is needed."}],F=D[0],q=[{name:"Cursor",Logo:function(e){return(0,s.jsx)("svg",{viewBox:"0 0 15 17.135",fill:"currentColor","aria-hidden":"true",...e,children:(0,s.jsx)("path",{d:"M14.7 4.05286L7.85357 0.0885718C7.74479 0.0304223 7.62335 0 7.5 0C7.37665 0 7.25521 0.0304223 7.14643 0.0885718L0.289286 4.05286C0.203506 4.10925 0.132481 4.18537 0.0821515 4.27485C0.0318221 4.36432 0.00365272 4.46455 0 4.56714V12.56C0 12.7886 0.1 12.96 0.3 13.0743L7.14643 17.0386C7.36071 17.1671 7.63929 17.1671 7.85357 17.0386L14.7107 13.0743C14.8893 12.96 14.9857 12.7886 15 12.56V4.56714C15 4.33857 14.9 4.16714 14.7 4.05286ZM14.2714 4.88857L7.66071 16.3636C7.61786 16.4386 7.5 16.4064 7.5 16.3207V8.81C7.49881 8.73594 7.47844 8.66345 7.44088 8.59961C7.40333 8.53576 7.34987 8.48274 7.28571 8.44571L0.803571 4.685C0.717857 4.64214 0.75 4.52429 0.846429 4.52429H14.0571C14.25 4.52429 14.3679 4.72786 14.2714 4.88857Z"})})}},{name:"Claude",Logo:function(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 15.96",fill:"currentColor","aria-hidden":"true",...e,children:(0,s.jsx)("path",{d:"M3.14 10.61L6.29 8.85L6.34 8.7L6.29 8.61H6.13L5.61 8.58L3.81 8.53L2.25 8.47L0.74 8.39L0.36 8.3L0 7.84L0.04 7.6L0.36 7.39L0.81 7.43L1.83 7.5L3.35 7.6L4.45 7.67L6.08 7.84H6.34L6.38 7.74L6.28 7.67L6.22 7.6L4.65 6.54L2.95 5.42L2.05 4.77L1.57 4.44L1.33 4.14L1.23 3.47L1.66 2.99L2.25 3.03L2.4 3.07L3 3.52L4.27 4.51L5.93 5.72L6.17 5.92L6.27 5.86V5.8L6.17 5.62L5.27 4L4.3 2.35L3.87 1.65L3.76 1.25C3.71647 1.0902 3.69295 0.925602 3.69 0.76L4.19 0.09L4.46 0L5.13 0.09L5.41 0.33L5.82 1.27L6.49 2.75L7.53 4.77L7.83 5.37L7.99 5.92L8.05 6.09H8.15V5.99L8.25 4.86L8.4 3.46L8.55 1.67L8.61 1.17L8.86 0.57L9.36 0.23L9.75 0.42L10.07 0.88L10.02 1.18L9.83 2.4L9.46 4.33L9.22 5.63H9.36L9.52 5.46L10.18 4.59L11.28 3.22L11.76 2.68L12.33 2.08L12.69 1.78H13.39L13.89 2.54L13.66 3.31L12.96 4.21L12.36 4.97L11.52 6.1L11 7L11.05 7.08L11.17 7.06L13.07 6.66L14.1 6.48L15.33 6.27L15.89 6.52L15.95 6.79L15.73 7.32L14.42 7.65L12.88 7.95L10.58 8.49L10.56 8.51L10.59 8.55L11.62 8.65L12.06 8.68H13.14L15.16 8.83L15.68 9.17L16 9.6L15.95 9.92L15.14 10.33L14.04 10.07L11.49 9.47L10.62 9.25H10.5V9.32L11.22 10.03L12.56 11.23L14.23 12.79L14.32 13.17L14.1 13.47L13.88 13.44L12.41 12.34L11.84 11.84L10.56 10.76H10.47V10.88L10.77 11.31L12.33 13.65L12.41 14.37L12.3 14.6L11.9 14.74L11.45 14.66L10.53 13.38L9.59 11.94L8.83 10.65L8.73 10.7L8.28 15.53L8.08 15.77L7.58 15.96L7.18 15.66L6.97 15.16L7.18 14.17L7.44 12.89L7.65 11.88L7.85 10.61L7.95 10.19V10.17H7.85L6.9 11.5L5.44 13.45L4.29 14.68L4.02 14.79L3.54 14.54L3.58 14.1L3.85 13.71L5.45 11.69L6.4 10.44L7.02 9.72V9.62H6.98L2.75 12.35L2 12.45L1.68 12.15L1.72 11.65L1.87 11.49L3.14 10.61Z"})})}},{name:"OpenAI",Logo:function(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 15.8558",fill:"currentColor","aria-hidden":"true",...e,children:(0,s.jsx)("path",{d:"M6.13927 5.76182V4.26123C6.1326 4.12785 6.18596 4.03114 6.29934 3.97112L9.32051 2.23044C9.74068 1.99702 10.2142 1.8803 10.7411 1.8803C12.6418 1.8803 13.8423 3.35088 13.8423 4.92149L13.8323 5.29164L10.691 3.45092C10.6073 3.39283 10.5078 3.3617 10.4059 3.3617C10.304 3.3617 10.2046 3.39283 10.1208 3.45092L6.13927 5.76182ZM13.212 11.6341V8.0327C13.212 7.81929 13.1153 7.65256 12.9219 7.53251L8.94037 5.23161L10.2409 4.48132C10.3476 4.4213 10.4543 4.4213 10.561 4.48132L13.6022 6.222C14.4725 6.7322 15.0628 7.81262 15.0628 8.86303C15.0628 10.0635 14.3525 11.1739 13.222 11.6341M5.21891 8.46287L3.91841 7.70258C3.80503 7.63588 3.74834 7.53918 3.74834 7.41246V3.9211C3.74834 2.22044 5.04885 0.939937 6.80954 0.939937C7.4898 0.946606 8.09337 1.15335 8.62024 1.56018L5.49902 3.36088C5.40483 3.40396 5.32633 3.47521 5.27436 3.56481C5.2224 3.65441 5.19953 3.75793 5.20891 3.86108L5.21891 8.46287ZM8 10.0835L6.13927 9.02309V6.81223L8 5.76182L9.8
16073 6.82223V9.0431L8 10.0835ZM9.20047 14.9054C8.5202 14.8987 7.91663 14.692 7.38976 14.2851L10.511 12.4844C10.6052 12.4414 10.6837 12.3701 10.7356 12.2805C10.7876 12.1909 10.8105 12.0874 10.8011 11.9842V7.38245L12.1116 8.14275C12.225 8.20944 12.2783 8.30615 12.2717 8.43286V11.9242C12.2717 13.6249 10.9612 14.9054 9.20047 14.9054ZM5.439 11.364L2.39781 9.62333C1.95147 9.34271 1.58403 8.95293 1.33022 8.49082C1.07641 8.02871 0.944599 7.50952 0.947247 6.9823C0.947247 5.76182 1.67753 4.67139 2.80797 4.21121V7.82262C2.80797 8.04938 2.90134 8.21611 3.08808 8.32282L7.05963 10.6237L5.75913 11.364C5.71121 11.3942 5.65571 11.4103 5.59906 11.4103C5.54241 11.4103 5.48692 11.3942 5.439 11.364ZM5.25893 13.965C3.46823 13.965 2.15772 12.6145 2.15772 10.9538C2.15772 10.8271 2.16772 10.7004 2.18773 10.5737L5.30895 12.3744C5.50903 12.4944 5.6991 12.4944 5.87917 12.3744L9.86073 10.0735V11.5841C9.8674 11.7175 9.81404 11.8142 9.70066 11.8742L6.67948 13.6149C6.25932 13.8483 5.7858 13.965 5.25893 13.965ZM9.20047 15.8558C10.1139 15.8557 10.9992 15.5399 11.7065 14.962C12.4139 14.3841 12.8998 13.5796 13.082 12.6845C13.7705 12.4951 14.3951 12.1236 14.8902 11.609C15.3854 11.
10945 15.7326 10.456 15.8954 9.76077C16.0582 9.06552 16.0306 8.33924 15.8154 7.65838C15.6002 6.97752 15.2054 6.36727 14.6726 5.89187C14.7526 5.55841 14.7927 5.22494 14.7927 4.89148C14.793 4.26376 14.6443 3.64493 14.3586 3.08599C14.0729 2.52705 13.6584 2.04401 13.1494 1.67666C12.6404 1.30931 12.0514 1.06818 11.4309 0.973143C10.8104 0.8781 10.1762 0.931867 9.58062 1.13001C9.07114 0.632525 8.43729 0.281164 7.74542 0.112719C7.05355 -0.0557256 6.32912 -0.0350588 5.64798 0.172556C4.96684 0.380171 4.35405 0.767096 3.87377 1.29282C3.39348 1.81854 3.06338 2.46372 2.91802 3.1608C2.22954 3.35022 1.60487 3.72175 1.10976 4.23628C0.614646 4.75081 0.267411 5.38931 0.104607 6.08456C-0.0581984 6.7798 -0.0305508 7.50609 0.184639 8.18695C0.399829 8.8678 0.7946 9.47805 1.3274 9.95345C1.24736 10.2869 1.20735 10.6204 1.20735 10.9538C1.20696 11.5816 1.35574 12.2004 1.64144 12.7593C1.92713 13.3183 2.34156 13.8013 2.85057 14.1687C3.35958 14.536 3.9486 14.7771 4.56908 14.8722C5.18957 14.9672 5.82376 14.9135 6.41938 14.7153C7.13966 15.4156 8.12005 15.8558 9.20047 15.8558Z"})})}}],U=(0,o.default)("flex h-11 w-full items-center gap-3 rounded-lg px-3 text-left text-base font-medium","text-emerald-800 transition hover:bg-bg-mute","dark:text-emerald-400 dark:hover:bg-white/10");function K({swapped:e,alt:t,className:r,children:n}){return(0,s.jsxs)("span",{className:(0,o.default)("relative inline-flex items-center",r),children:[(0,s.jsx)("span",{className:(0,o.default)("inline-flex items-center transition duration-200 ease-out motion-reduce:transition-none",e?"opacity-0":"opacity-100"),children:n}),(0,s.jsx)("span",{"aria-hidden":!e,className:(0,o.default)("pointer-events-none absolute inset-0 flex items-center","transition duration-200 ease-out motion-reduce:transition-none",e?"opacity-100":"opacity-0"),children:t})]})}function W({className:e}){let[t,r]=B.useState(!1),[n,a]=B.useState(null),[i,l]=B.useState(),[c,d]=B.useState(!1),u=B.useRef(null),h=B.useRef(void 0);B.useEffect(()=>d(!0),[]),B.useEffect(()=>{if(!n)return;let e=setTimeout(()=>a(null),1800);return()=>clearTimeout(e)},[n]),B.useEffect(()=>()=>clearTimeout(h.current),[]);let p=B.useCallback(()=>{let e=u.current?.getBoundingClientRect();if(!e)return;let t=Math.min(e.left,Math.max(8,window.innerWidth-e.width-8));l({top:e.bottom+4,left:t,width:e.width})},[]);B.useEffect(()=>{p()},[p]),B.useEffect(()=>{if(t)return p(),window.addEventListener("scroll",p,!0),window.addEventListener("resize",p),()=>{window.removeEventListener("scroll",p,!0),window.removeEventListener("resize",p)}},[t,p]);let m=n===F.id,x=e=>{(0,I.default)(e.value),a(e.id),(0,P.trackEvent)("agent_setup_copied",{option:e.id})},C=()=>{clearTimeout(h.current),r(!0)},f=()=>{clearTimeout(h.current),h.current=setTimeout(()=>r(!1),120)},g=c&&i?(0,z.createPortal)((0,s.jsxs)("div",{role:"menu","aria-label":"Set up your agent","aria-hidden":!t,style:{to
1p:i.top,left:i.left,width:i.width},onMouseEnter:C,onMouseLeave:f,className:(0,o.default)("fixed z-[999] rounded-xl bg-white p-2 text-left","shadow-[0_8px_10px_rgba(0,0,0,0.2)]","dark:bg-zinc-900 dark:shadow-none dark:ring-1 dark:ring-white/10","origin-top transition duration-150 ease-out motion-reduce:transition-none",t?"translate-y-0 opacity-100":"pointer-events-none -translate-y-1 opacity-0"),children:[D.map(e=>{let r=n===e.id;return(0,s.jsxs)("button",{type:"button",role:"menuitem",tabIndex:t?0:-1,onClick:()=>x(e),className:(0,o.default)(U,"border-b border-zinc-100 dark:border-white/10"),children:[(0,s.jsx)(K,{swapped:r,className:"flex-1",alt:(0,s.jsx)("span",{className:"text-primary",children:"Copied"}),children:e.label}),(0,s.jsx)(K,{swapped:r,alt:(0,s.jsx)(O.IconCheck,{size:20,className:"text-primary"}),children:(0,s.jsx)(T.IconCopy,{size:20})})]},e.id)}),(0,s.jsxs)("a",{role:"menuitem",href:"https://upstash.com/docs/agent-resources/overview",target:"_blank",tabIndex:t?0:-1,className:U,rel:"noreferrer",children:[(0,s.jsx)("span",{className:"flex-1",children:"See all agent resources"}),(0,s.jsx)(b.IconArrowUpRight,{size:20})]})]}),document.body):void 0;return(0,s.jsxs)("div",{ref:u,className:(0,o.default)("inline-flex",e),onMouseEnter:C,onMouseLeave:f,onFocus:C,onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||f()},onKeyDown:e=>{"Escape"===e.key&&r(!1)},children:[(0,s.jsx)("span",{className:"inline-flex rounded-xl bg-gradient-to-r from-emerald-400 to-amber-300 p-0.5",children:(0,s.jsxs)("button",{type:"button","aria-haspopup":"menu","aria-expanded":t,onClick:()=>x(F),className:(0,o.default)("flex h-10 items-center gap-2.5 rounded-[10px] bg-white px-5","text-base font-medium text-emerald-800 transition hover:bg-emerald-50","dark:bg-zinc-900 dark:text-emerald-400 dark:hover:bg-zinc-800"),children:[(0,s.jsx)("span",{className:"flex items-center","aria-hidden":"true",children:q.map(({name:e,Logo:t},r)=>(0,s.jsx)("span",{title:e,className:(0,o.default)("flex size-7 items-center justify-center rounded-full border border-emerald-900/30 bg-white","dark:border-emerald-400/30 dark:bg-zinc-900",r>0&&"-ml-[5px]"),children:(0,s.jsx)(t,{className:"size-4"})},e))}),(0,s.jsx)(K,{swapped:m,alt:(0,s.jsx)("span",{className:"text-primary",children:"Copied"}),children:"Set up your agent"}),(0,s.jsx)(A.IconChevronDown,{size:20,className:(0,o.default)("transition-transform",t&&"rotate-180")})]})}),g]})}function Q(){return(0,s.jsxs)("section",{className:"relative z-0 py-16",children:[(0,s.jsx)(f.default,{section:"hero"}),(0,s.jsx)(r.default,{className:"!top-1/2 -translate-y-1/2"}),(0,s.jsxs)(n.default,{children:[(0,s.jsxs)("h1",{className:(0,o.default)("tracking-tight transition","font-display text-5xl font-bold leading-none md:text-[8rem]","bg-gradient-to-r bg-clip-text text-transparent","from-primary-text via-primary to-amber-500"),children:["Serverless ",(0,s.jsx)("br",{}),"Data Platform"]}),(0,s.jsx)("p",{className:(0,o.default)("mt-2 text-lg md:text-2xl","text-text-mute"),children:"One platform for all your data needs"}),(0,s.jsxs)("div",{className:"mt-6 flex flex-wrap items-center justify-center gap-4","data-area":"home_hero",children:[(0,s.jsx)(w.default,{asChild:!0,variant:"primary",className:"h-11 px-5",children:(0,s.jsxs)("a",{href:"https://console.upstash.com",target:"_self",children:["Start for Free ",(0,s.jsx)(b.IconArrowUpRight,{size:20})]})}),(0,s.jsx)(W,{})]})]})]})}var Y=e.i(16006),$=e.i(86734),G=e.i(74002),X=e.i(33376);let J=e=>(0,s.jsx)("svg",{viewBox:"0 0 62 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M28.0989 19.1408L23.6251 9.56355C23.2514 8.76582 23.0288 8.47411 22.6551 8.1358L22.2914 7.80789C22.0013 7.52658 21.8108 7.26608 21.8108 6.9569C21.8108 6.51413 22.1615 6.14128 22.8003 6.14128H26.6845C27.2941 6.14128 27.674 6.45837 27.674 6.93193C27.674 7.19617 27.5525 7.39425 27.399 7.58858C27.2167 7.81954 26.9795 8.04467 26.9795 8.45497C26.9795 8.71214 27.0544 8.96848 27.1988 9.29597L29.8687 15.5484L32.2636 9.45327C32.4109 9.04796 32.5116 8.69092 32.5116 8.40504C32.5116 7.96019 32.2698 7.77876 32.0834 7.57985C31.9211 7.40715 31.7913 7.22447 31.7913 6.93193C31.7913 6.45379 32.1803 6.14128 32.7038 6.14128H35.0958C35.7666 6.14128 36.0853 6.48833 36.0853 6.93193C36.0853 7.21573 35.9218 7.47872 35.6001 7.76253L35.2618 8.0405C34.7907 8.42543 34.5727 8.98221 34.3251 9.55814L30.6981 18.2961C30.2695 19.3177 29.6315 20.7359 28.657 21.8994C27.66
17 23.0812 26.332 24 24.5239 24C23.01 24 22.0937 23.2772 22.0937 22.2356C22.0937 21.2814 22.7995 20.5211 23.7266 20.5211C24.2343 20.5211 24.4985 20.7608 24.7665 21.0076C24.9879 21.2111 25.2126 21.42 25.6558 21.42C26.0669 21.42 26.4498 21.246 26.7968 20.9651C27.327 20.5365 27.771 19.8616 28.0989 19.1408ZM54.3881 19.1067C56.4017 19.1067 58.0517 18.4168 59.3388 17.0398C60.6246 15.6649 61.268 14.0099 61.268 12.0749C61.268 10.1861 60.6567 8.63432 59.4387 7.41797C58.2211 6.20245 56.641 5.59198 54.6964 5.59198C52.649 5.59198 50.9745 6.25655 49.6708 7.58109C48.3662 8.90689 47.7137 10.5127 47.7137 12.3991C47.7137 14.2688 48.3363 15.8534 49.5792 17.1534C50.8235 18.4542 52.4256 19.1067 54.3881 19.1067ZM37.3595 18.9569C38.5239 18.9569 39.352 18.1729 39.352 17.0427C39.352 15.9391 38.4968 15.1534 37.3595 15.1534C36.1681 15.1534 35.3155 15.9404 35.3155 17.0427C35.3155 18.1717 36.1685 18.9569 37.3595 18.9569ZM41.5059 17.1654L41.7892 16.8658C42.1263 16.5383 42.2349 16.2075 42.2349 15.2954V9.90269C42.2349 9.11413 42.1276 8.76208 41.793 8.4608L41.4597 8.16201C41.133 7.87364 41.0256 7.69428 41.0256 7.40632C41.0256 6.99684 41.3432 6.66103 41.8537 6.54451L44.1175 5.99522C44.3339 5.94278 44.5782 5.8916 44.7675 5.8916C45.028 5.8916 45.2411 5.97732 45.3905 6.12588C45.5403 6.27486 45.6285 6.48916 45.6285 6.75715V15.2954C45.6285 16.1563 45.7329 16.5566 46.0925 16.8592C46.0983 16.8642 46.1037 16.8696 46.1087 16.8754L46.3617 17.17C46.6796 17.4792 46.8115 17.6844 46.8115 17.9665C46.8115 18.4696 46.432 18.7572 45.8224 18.7572H41.9894C41.4085 18.7572 41.0256 18.4713 41.0256 17.9665C41.0256 17.6831 41.1576 17.4763 41.5059 17.1654ZM15.8859 17.1659L16.1692 16.8658C16.5067 16.5383 16.6149 16.2075 16.6149 15.2954V4.03607C16.6149 3.27246 16.5342 2.89753 16.1767 2.59666L15.8347 2.26542C15.5396 1.97871 15.4319 1.80102 15.4319 1.5143C15.4319 1.10441 15.751 0.769844 16.2337 0.652911L18.4717 0.103617C18.6885 0.0511845 18.9324 0 19.1221 0C19.3805 0 19.5994 0.0778166 19.7555 0.225543C19.9119 0.373687 20.0085 0.593821 20.0085 0.890523V15.2954C20.0085 16.1584 20.1158 16.5358 20.4766 16.8625L20.7654 17.1679C21.0854 17.4792 21.192 17.6831 21.192 17.9665C21.192 18.1754 21.1283 18.3439 21.0147 18.4725C20.8545 18.6535 20.5861 18.7572 20.2282 18.7572H16.3956C16.0378 18.7572 15.7693 18.6535 15.6087 18.4725C15.4955 18.3439 15.4319 18.1754 15.4319 17.9665C15.4319 17.6827 15.5371 17.4771 15.8859 17.1659ZM5.44969 11.3675V15.2454C5.44969 15.8297 5.56537 16.3694 6.04684 16.8134L6.3581 17.1155C6.70682 17.4538 6.81294 17.6565 6.81294 17.9665C6.81294 18.4401 6.43301 18.7572 5.82337 18.7572H1.50184C0.892207 18.7572 0.512695 18.4401 0.512695 17.9665C0.512695 17.5986 0.620474 17.4243 0.969192 17.1138L1.27921 16.8126C1.64041 16.4855 1.87594 16.0398 1.87594 15.2454V4.88497C1.87594 4.2537 1.73612 3.73728 1.2788 3.31657L0.967113 3.01446C0.646691 2.70361 0.512695 2.49929 0.512695 2.18844C0.512695 1.68658 0.893456 1.37282 1.50184 1.37282H13.0774C13.5197 1.37282 13.9084 1.47144 14.1568 1.71488C14.3295 1.88425 14.4398 2.12311 14.4523 2.45476L14.6325 5.12675C14.6504 5.4609 14.5517 5.73929 14.3591 5.91116C14.2263 6.02934 14.0478 6.10008 13.8231 6.10008C13.5397 6.10008 13.3225 5.99313 13.1286 5.80837C12.9542 5.64233 12.799 5.4093 12.6238 5.13507C12.201 4.45927 12.0042 4.21625 11.5535 3.90041C10.9264 3.43767 9.97096 3.27871 8.16411 3.27871C7.1217 3.27871 6.4638 3.32406 6.04933 3.43101C5.78134 3.50009 5.62654 3.58997 5.54373 3.72189C5.45884 3.85671 5.44969 4.02733 5.44969 4.23581V9.48656H8.16411C8.8137 9.48656 9.27061 9.36921 9.79993 8.64556L9.80284 8.6414C10.0151 8.37133 10.1686 8.17242 10.3147 8.0405C10.4849 7.88654 10.6484 7.81371 10.8652 7.81371C11.0738 7.81558 11.2731 7.89976 11.4199 8.04792C11.5666 8.19609 11.6489 8.39623 11.6488 8.60478V12.2247C11.6488 12.7095 11.271 13.0403 10.8652 13.0403C10.6634 13.0403 10.4994 12.9683 10.3288 12.8177C10.1819 12.6887 10.028 12.4952 9.82823 12.2368C9.24897 11.4869 8.83991 11.3675 8.16411 11.3675H5.44969ZM51.3133 11.2759C51.3133 9.97718 51.5962 9.0438 52.1826 8.48244C52.7618 7.92815 53.3843 7.64768 54.0535 7.64768C54.974 7.64768 55.8033 8.16285 56.5515 9.17571C57.316 10.2115 57.6942 11.6113 57.6942 13.3728C57.6942 14.6728 57.4104 15.6149 56.8233 16.1925C56.2444 16.7622 55.6223 17.051 54.9536 17.051C54.0331 17.051 53.2042 16.5317 52.456 15.5109C51.6911 14.4664 51.3133 13.0541 51.3133 11.2759ZM43.7388 4.25245C44.9057 4.25245 45.7313 3.5958 45.7313 2.46309C45.7313 1.35701 44.9065 0.698686 43.7388 0.698686C42.5441 0.698686 41.7202 1.35742 41.7202 2.46309C41.7202 3.56833 42.5445 4.25245 43.7388 4.25245Z",fill:"currentColor"})});var ee=e.i(89581),et=e.i(49406),es=e.i(64647);let er=e=>(0,s.jsxs)("svg",{viewBox:"0 0 306 71",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,s.jsx)("path",{d:"M11.0229 44.899C10.7271 45.2688 10.6531 45.7865 11.0229 46.0823C11.1708 46.3042 11.4667 46.3781 11.7625 46.3781C11.9104 46.3781 12.1323 46.3042 12.2802 46.2302C19.676 41.349 27.5896 40.9792 32.9146 41.6448C38.7573 42.3104 42.825 44.1594 42.899 44.2333C43.1948 44.3813 43.5646 44.3073 43.7865 44.1594C44.0823 43.9375 44.2302 43.6417 44.1562 43.2719C43.4906 37.5031 41.4198 31.8083 37.9438 26.4094C35.2073 22.1198 31.5094 17.9781 27.1458 14.1323C19.5281 7.62396 12.5021 4.22187 12.2062 4.07396C11.8365 3.92604 11.3927 4 11.1708 4.29583C10.875 4.59167 10.875 5.03542 11.0229 5.33125C14.2771 10.9521 16.274 16.5729 17.0135 21.9719C17.6052 26.2615 17.3833 30.4031 16.3479 34.3969C14.5729 41.0531 11.0969 44.825 11.0229 44.899ZM18.7885 21.824C18.1229 17.0906 16.5698 12.1354 14.0552 7.18021C16.7917 8.73333 21.2292 11.5438 25.8146 15.5375C30.1042 19.2354 33.6542 23.3031 36.3167 27.4448C39.349 32.1042 41.2719 36.9854 42.0854 42.0146C40.3104 41.349 37.1302 40.3875 33.1365 39.9438C28.3292 39.426 21.599 39.574 14.8688 42.7542C15.9781 40.9052 17.2354 38.3167 18.1229 34.9885C19.1583 30.7729 19.4542 26.3354 18.7885 21.824ZM29.1427 12.7271C29.8823 13.1708 41.9375 21.1583 47.4104 42.1625C47.5583 42.6063 48.0021 42.9021 48.4458 42.8281C48.5198 42.8281 53.0312 42.0885 55.6937 43.8635C55.8417 43.9375 55.9896 44.0115 56.2115 44.0115C56.4333 44.0115 56.5812 43.9375 56.7292 43.8635C57.025 43.6417 57.1729 43.2719 57.099 42.9021C57.025 42.6802 55.5458 37.1333 51.4781 30.4031C47.7062 24.1906 40.9021 15.8333 30.1042 11.026C29.8083 10.8781 29.5125 10.8781 29.2167 11.026C28.9208 11.174 28.7729 11.4698 28.7729 11.8396C28.699 12.2094 28.8469 12.5792 29.1427 12.7271ZM49.7771 31.3646C52.2917 35.5062 53.8448 39.2781 54.6583 41.4229C53.2531 40.9792 51.774 40.8313 50.5906 40.8313C49.925 40.8313 49.4073 40.8313 48.9635 40.9052C45.9313 29.6635 41.05 22.2677 37.5 17.9781C37.2042 17.6083 36.8344 17.1646 36.5385 16.8687C42.825 21.3062 47.1146 26.9271 49.7771 31.3646ZM66.4177 56.7323C65.9 56.7323 65.4562 56.5844 65.0125 56.2146L61.0187 53.3302C59.4656 52.2208 57.4687 52.2208 55.9896 53.3302L51.9958 56.2146C51.1083 56.8802 49.999 56.8802 49.1115 56.2146L48.8156 55.9927C58.2083 51.5552 62.7937 47.0437 63.0156 46.8219C63.3115 46.526 63.3854 46.1562 63.1635 45.7865C63.0156 45.4167 62.6458 45.1948 62.276 45.2688L7.17708 48.7448C6.88125 48.7448 6.58542 48.9667 6.4375 49.1885C6.28958 49.4844 6.28958 49.7802 6.4375 50.076L8.28646 53.3302L4.29271 56.2146C3.84896 56.5104 3.40521 56.6583 2.8875 56.7323C2.36979 56.7323 2 57.176 2 57.6198C2 58.1375 2.44375 58.5073 2.8875 58.5073C3.775 58.5073 4.58854 58.2115 5.32812 57.6937L9.24792 54.8094C10.1354 54.1438 11.2448 54.1438 12.1323 54.8094L16.126 57.6937C16.8656 58.2854 17.7531 58.5073 18.6406 58.5073C19.5281 58.5073 20.4156 58.2115 21.1552 57.6937L25.149 54.8094C26.0365 54.1438 27.1458 54.1438 28.0333 54.8094L32.0271 57.6937C33.5802 58.8031 35.5771 58.8031 37.0563 57.6937L41.05 54.8094C41.9375 54.1438 43.0469 54.1438 43.9344 54.8
1094L47.9281 57.6937C49.4813 58.8031 51.4781 58.8031 52.9573 57.6937L56.951 54.8094C57.8385 54.1438 58.9479 54.1438 59.8354 54.8094L63.8292 57.6937C64.5687 58.2115 65.3823 58.5073 66.2698 58.5073C66.7875 58.5073 67.1573 58.1375 67.1573 57.6198C67.3052 57.176 66.8615 56.7323 66.4177 56.7323ZM40.0885 53.4042L36.1687 56.2885C35.2812 56.9542 34.1719 56.9542 33.2844 56.2885L29.2906 53.4042C27.7375 52.2948 25.7406 52.2948 24.2615 53.4042L20.2677 56.2885C19.3802 56.9542 18.2708 56.9542 17.3833 56.2885L13.3896 53.4042C12.3542 52.6646 11.1708 52.4427 10.0615 52.6646L8.80417 50.5198L59.6875 47.3396C59.1698 47.7094 58.6521 48.1531 57.9865 48.5969C55.7677 50.224 52.1438 52.5167 47.1146 54.8094L45.1177 53.3302C43.6385 52.2948 41.6417 52.2948 40.0885 53.4042Z"}),(0,s.jsx)("path",{d:"M85.911 48V19.3H91.733L100.917 37.832L110.019 19.3H115.882V48H110.962V27.746L102.844 43.982H98.99L90.831 27.787V48H85.911ZM121.747 48V27.336H126.667V48H121.747ZM124.207 24.056C123.305 24.056 122.553 23.7827 121.952 23.236C121.378 22.662 121.091 21.965 121.091 21.145C121.091 20.2977 121.378 19.6143 121.952 19.095C122.553 18.5483 123.305 18.275 124.207 18.275C125.109 18.275 125.847 18.5483 126.421 19.095C127.022 19.6143 127.323 20.2977 127.323 21.145C127.323 21.965 127.022 22.662 126.421 23.236C125.847 23.7827 125.109 24.056 124.207 24.056ZM141.536 48.492C139.623 48.492 137.915 48.0273 136.411 47.098C134.908 46.1687 133.733 44.884 132.885 43.244C132.065 41.604 131.655 39.7453 131.655 37.668C131.655 35.5907 132.079 33.7457 132.926 32.133C133.774 30.493 134.949 29.2083 136.452 28.279C137.983 27.3223 139.705 26.844 141.618 26.844C143.176 26.844 144.529 27.1447 145.677 27.746C146.853 28.32 147.782 29.14 148.465 30.206V18.48H153.385V48H148.957L148.465 45.007C148.028 45.6083 147.495 46.1823 146.866 46.729C146.238 47.2483 145.486 47.672 144.611 48C143.737 48.328 142.712 48.492 141.536 48.492ZM142.561 44.228C143.737 44.228 144.775 43.9547 145.677 43.408C146.579 42.834 147.276 42.055 147.768 41.071C148.26 40.087 148.506 38.9527 148.506 37.668C148.506 36.3833 148.26 35.249 147.768 34.265C147.276 33.281 146.579 32.5157 145.677 31.969C144.775 31.4223 143.737 31.149 142.561 31.149C141.441 31.149 140.429 31.4223 139.527 31.969C138.625 32.5157 137.915 33.281 137.395 34.265C136.903 35.249 136.657 36.3833 136.657 37.668C136.657 38.9527 136.903 40.087 137.395 41.071C137.915 42.055 138.625 42.834 139.527 43.408C140.429 43.9547 141.441 44.228 142.561 44.228ZM154.922 57.02V52.838H156.603C157.533 52.838 158.189 52.6467 158.571 52.264C158.954 51.9087 159.145 51.28 159.145 50.378V27.336H164.065V50.419C164.065 52.0043 163.792 53.2753 163.245 54.232C162.699 55.216 161.92 55.9267 160.908 56.364C159.924 56.8013 158.735 57.02 157.341 57.02H154.922ZM161.646 24.056C160.717 24.056 159.965 23.7827 159.391 23.236C158.817 22.662 158.53 21.965 158.53 21.145C158.53 20.2977 158.817 19.6143 159.391 19.095C159.965 18.5483 160.717 18.275 161.646 18.275C162.548 18.275 163.286 18.5483 163.86 19.095C164.434 19.6143 164.721 20.2977 164.721 21.145C164.721 21.965 164.434 22.662 163.86 23.236C163.286 23.7827 162.548 24.056 161.646 24.056ZM179.344 48.492C177.376 48.492 175.599 48.041 174.014 47.139C172.456 46.2097 171.226 44.9387 170.324 43.326C169.449 41.686 169.012 39.8137 169.012 37.709C169.012 35.5497 169.463 33.6637 170.365 32.051C171.267 30.411 172.497 29.14 174.055 28.238C175.64 27.3087 177.417 26.844 179.385 26.844C181.353 26.844 183.116 27.3087 184.674 28.238C186.259 29.14 187.489 30.3973 188.364 32.01C189.266 33.6227 189.717 35.5087 189.717 37.668C189.717 39.8273 189.266 41.7133 188.364 43.326C187.462 44.9387 186.218 46.2097 184.633 47.139C183.075 48.041 181.312 48.492 179.344 48.492ZM179.344 44.269C180.328 44.269 181.216 44.023 182.009 43.531C182.829 43.039 183.485 42.301 183.977 41.317C184.469 40.333 184.715 39.1167 184.715 37.668C184.715 36.2193 184.469 35.0167 183.977 34.06C183.512 33.076 182.87 32.338 182.05 31.846C181.257 31.354 180.369 31.108 179.385 31.108C178.428 31.108 177.54 31.354 176.72 31.846C175.9 32.338 175.244 33.076 174.752 34.06C174.26 35.0167 174.014 36.2193 174.014 37.668C174.014 39.1167 174.26 40.333 174.752 41.317C175.244 42.301 175.886 43.039 176.679 43.531C177.499 44.023 178.387 44.269 179.344 44.269ZM202.2 48.492C200.533 48.492 199.098 48.164 197.895 47.508C196.72 46.8247 195.818 45.8133 195.189 44.474C194.56 43.1073 194.246 41.4263 194.246 39.431V27.336H199.166V38.939C199.166 40.7157 199.535 42.0687 200.273 42.998C201.038 43.9 202.186 44.351 203.717 44.351C204.701 44.351 205.576 44.1187 206.341 43.654C207.134 43.1893 207.749 42.5197 208.186 41.645C208.651 40.743 208.883 39.6497 208.883 38.365V27.336H213.803V48H209.457L209.088 44.556C208.459 45.7587 207.544 46.7153 206.341 47.426C205.166 48.1367 203.785 48.492 202.2 48.492ZM219.277 48V27.336H223.664L224.115 31.19C224.607 30.288 225.222 29.5227 225.96 28.894C226.698 28.238 227.559 27.7323 228.543 27.377C229.555 27.0217 230.662 26.844 231.864 26.844V32.051H230.142C229.322 32.051 228.543 32.1603 227.805 32.379C227.067 32.5703 226.425 32.8983 225.878 33.363C225.359 33.8003 224.949 34.4153 224.648 35.208C224.348 35.9733 224.197 36.9437 224.197 38.119V48H219.277ZM235.573 48V27.336H239.919L240.288 30.78C240.917 29.5773 241.819 28.6207 242.994 27.91C244.17 27.1993 245.564 26.844 247.176 26.844C248.844 26.844 250.265 27.1993 251.44 27.91C252.616 28.5933 253.518 29.6047 254.146 30.944C254.802 32.2833 255.13 33.9507 255.13 35.946V48H250.21V36.397C250.21 34.675 249.828 33.3493 249.062 32.42C248.297 31.4907 247.163 31.026 245.659 31.026C244.675 31.026 243.787 31.2583 242.994 31.723C242.229 32.1877 241.614 32.871 241.149 33.773C240.712 34.6477 240.493 35.7137 240.493 36.971V48H235.573ZM2
169.993 48.492C267.943 48.492 266.139 48.0547 264.581 47.18C263.023 46.278 261.807 45.0207 260.932 43.408C260.058 41.7953 259.62 39.9367 259.62 37.832C259.62 35.6453 260.044 33.732 260.891 32.092C261.766 30.452 262.982 29.1673 264.54 28.238C266.126 27.3087 267.957 26.844 270.034 26.844C272.057 26.844 273.82 27.295 275.323 28.197C276.827 29.099 277.988 30.3153 278.808 31.846C279.628 33.3493 280.038 35.044 280.038 36.93C280.038 37.2033 280.038 37.504 280.038 37.832C280.038 38.16 280.011 38.5017 279.956 38.857H263.146V35.7H275.077C275.023 34.1967 274.517 33.0213 273.56 32.174C272.604 31.2993 271.415 30.862 269.993 30.862C268.982 30.862 268.053 31.0943 267.205 31.559C266.358 32.0237 265.688 32.7207 265.196 33.65C264.704 34.552 264.458 35.7 264.458 37.094V38.283C264.458 39.5677 264.691 40.6747 265.155 41.604C265.647 42.5333 266.303 43.244 267.123 43.736C267.971 44.2007 268.914 44.433 269.952 44.433C271.1 44.433 272.043 44.187 272.781 43.695C273.547 43.203 274.107 42.547 274.462 41.727H279.464C279.082 43.0117 278.453 44.1733 277.578 45.212C276.704 46.2233 275.624 47.0297 274.339 47.631C273.055 48.205 271.606 48.492 269.993 48.492ZM286.161 57.02L291.204 45.704H289.974L281.733 27.336H287.104L293.254 41.358L299.076 27.336H304.283L291.368 57.02H286.161Z"})]});var en=e.i(15579),ea=e.i(85398);let eo=e=>(0,s.jsxs)("svg",{viewBox:"19.29 16.85 1569.98 258.41",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,s.jsx)("path",{fill:"currentColor",d:"M303.9475,17.19926c42.79734,0,77.48933,34.69327,77.48933,77.48933s-34.69199,77.48933-77.48933,77.48933l76.86166,76.86244c9.76367,9.76313,2.84903,26.45667-10.95697,26.45667h-220.88335c-71.32686,0-129.14889-57.82202-129.14889-129.14889S77.64197,17.19926,148.96884,17.19926h154.97866ZM148.96884,68.85881c-42.79607,0-77.48933,34.69327-77.48933,77.48933s34.69327,77.48933,77.48933,77.48933,77.48933-34.69327,77.48933-77.48933-34.69327-77.48933-77.48933-77.48933Z"}),(0,s.jsxs)("g",{children:[(0,s.jsx)("path",{fill:"currentColor",d:"M549.07406,99.70517c33.28649,0,60.91741,25.67245,60.91741,59.82993,0,34.37566-26.97726,60.70093-61.13474,60.70093-33.5055,0-61.35375-25.89062-61.35375-60.26543s27.84825-60.26543,61.57108-60.26543ZM549.07406,196.73854c21.10267,0,34.59214-16.75191,34.59214-36.76794s-13.7068-36.76879-34.80947-36.76879c-20.88703,0-34.81115,16.31725-34.81115,36.33329,0,19.79871,13.92412,37.20344,35.02848,37.20344Z"}),(0,s.jsx)("path",{fill:"currentColor",d:"M683.60991,220.01786c-8.91885,0-28.50023-4.56893-37.6381-18.71038v74.18956h-25.89062V102.0983h25.23863v18.05756c9.78985-15.88176,28.71756-20.23336,38.94375-20.23336,35.68046,0,57.00215,30.67688,57.00215,59.82993,0,31.54703-23.27932,60.26543-57.65582,60.26543ZM680.34663,196.52122c20.88703,0,34.81115-16.53458,34.81115-36.55062s-13.7068-36.76879-34.81115-36.76879c-21.10267,0-34.80947,16.75275-34.80947,36.76879s13.7068,36.55062,34.80947,36.55062Z"}),(0,s.jsx)("path",{fill:"currentColor",d:"M776.96641,167.80281c.43634,17.84023,16.97008,30.24138,33.94016,30.24138,14.14145,0,24.58497-5.22176,31.33054-18.05756l18.71038,12.40115c-10.00886,18.49222-29.37123,28.06558-49.60459,28.06558-34.3765,0-60.9191-25.89062-60.9191-60.48276,0-32.85268,24.80229-60.26543,58.52513-60.26543,36.11512,0,56.56749,25.01962,56.56749,60.04726,0,1.08832,0,5.22176-.43634,8.05038h-88.11368ZM778.27206,148.22143h60.9191c-.87099-16.53458-14.14314-26.32527-30.24222-26.32527-15.88176,0-28.2829,10.44351-30.67688,26.32527Z"}),(0,s.jsx)("path",{fill:"currentColor",d:"M956.94225,153.22586c0-16.53458-7.83221-28.93573-25.67329-28.93573-16.31641,0-26.75993,11.74832-26.75993,29.37039v64.61704h-25.89062v-116.17926h25.23863v15.66443c11.0955-15.01161,26.32527-18.05756,35.46145-18.05756,29.59024,0,43.51436,20.66802,43.51436,46.99329v71.5791h-25.89062v-65.05169Z"}),(0,s.jsx)("path",{fill:"currentColor",d:"M1062.97619,128.20624c-2.17496-.4355-6.09191-.65282-7.39588-.65282-19.79871,0-30.24222,11.74832-30.24222,31.76436v58.95978h-25.89062v-116.17926h25.23863v18.49306c7.17855-13.05397,19.36237-19.58138,31.98084-19.58138,1.52298,0,4.78626.21817,6.30924.65282v26.54344Z"}),(0,s.jsx)("path",{fill:"currentColor",d:"M1127.5966,99.70517c33.28649,0,60.91741,25.67245,60.91741,59.82993,0,34.37566-26.97726,60.70093-61.13474,60.70093-33.5055,0-61.35375-25.89062-61.35375-60.26543s27.84825-60.26543,61.57108-60.26543ZM1127.5966,196.73854c21.10267,0,34.59214-16.75191,34.59214-36.76794s-13.7068-36.76879-34.80947-36.76879c-20.88703,0-34.81115,16.31725-34.81115,36.33329,0,19.79871,13.92412,37.20344,35.02848,37.20344Z"}),(0,s.jsx)("path",{fill:"currentColor",d:"M1226.63731,167.14999c0,16.53458,7.83221,28.93573,25.67329,28.93573,16.31641,0,26.75993-11.74832,26.75993-29.37123v-64.61619h25.89062v116.17926h-25.23863v-15.66443c-11.0955,15.01161-26.32527,18.05756-35.46145,18.05756-29.1539,0-43.51436-20.66886-43.51436-47.21146v-71.36093h25.89062v65.05169Z"}),(0,s.jsx)("path",{fill:"currentColor",d:"M1366.31995,176.72251c0,14.35962,7.17855,19.36321,20.01603,19.36321,2.39229,0,5.00359-.21733,8.26687-.87015v21.97451c-4.56893,1.74031-10.66084,2.39313-13.92412,2.39313-25.01962,0-40.2494-13.05397-40.2494-38.72642v-55.47917h-21.32168v-23.27932h21.32168v-35.89863h25.89062v35.89863h28.50023v23.27932h-28.50023v51.34489Z"}),(0,s.jsx)("path",{fill:"currentColor",d:"M1425.3269,167.80281c.43634,17.84023,16.97008,30.24138,33.94016,30.24138,14.14145,0,24.58497-5.22176,31.33054-18.05756l18.71038,12.40115c-10.00886,18.49222-29.37123,28.06558-49.60459,28.06558-34.3765,0-60.9191-25.89062-60.9191-60.48276,0-32.85268,24.80229-60.26543,58.52513-60.26543,36.11512,0,56.56749,25.01962,56.56749,60.04726,0,1.08832,0,5.22176-.43634,8.05038h-88.11368ZM1426.63255,148.22143h60.9191c-.87099-16.53458-14.14314-26.32527-30.24222-26.32527-15.88176,0-28.2829,10.44351-30.67688,26.32527Z"}),(0,s.jsx)("path",{fill:"currentColor",d:"M1588.78248,128.20624c-2.17496-.4355-6.09191-.65282-7.39588-.65282-19.79871,0-30.24222,11.74832-30.24222,31.76436v58.95978h-25.89062v-116.17926h25.23863v18.49306c7.17855-13.05397,19.36237-19.58138,31.98084-19.58138,1.52298,0,4.78626.21817,6.30924.65282v26.54344Z"})]})]});var ei=e.i(76527),el=e.i(30133);let ec=e=>
1(0,s.jsx)("svg",{viewBox:"0 0 103 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:(0,s.jsx)("path",{d:"M51.5964 6.25C47.6289 6.25 44.7683 8.8375 44.7683 12.7188C44.7683 16.6 47.9883 19.1875 51.9558 19.1875C54.3528 19.1875 56.4659 18.2387 57.7741 16.6395L55.0248 15.0511C54.2989 15.8453 53.1956 16.3089 51.9558 16.3089C50.2344 16.3089 48.7717 15.4105 48.2291 13.973H58.2988C58.3778 13.5705 58.4245 13.1536 58.4245 12.7152C58.4245 8.8375 55.5639 6.25 51.5964 6.25ZM48.1967 11.4609C48.6459 10.027 49.875 9.125 51.5928 9.125C53.3142 9.125 54.5433 10.027 54.9889 11.4609H48.1967ZM90.2939 6.25C86.3264 6.25 83.4658 8.8375 83.4658 12.7188C83.4658 16.6 86.6858 19.1875 90.6533 19.1875C93.0503 19.1875 95.1634 18.2387 96.4716 16.6395L93.7223 15.0511C92.9964 15.8453 91.8931 16.3089 90.6533 16.3089C88.9319 16.3089 87.4692 15.4105 86.9266 13.973H96.9963C97.0753 13.5705 97.122 13.1536 97.122 12.7152C97.122 8.8375 94.2614 6.25 90.2939 6.25ZM86.8978 11.4609C87.347 10.027 88.5761 9.125 90.2939 9.125C92.0153 9.125 93.2444 10.027 93.69 11.4609H86.8978ZM72.8714 12.7188C72.8714 14.875 74.2802 16.3125 76.4652 16.3125C77.9458 16.3125 79.0563 15.6405 79.6277 14.5444L82.3877 16.1364C81.2449 18.0411 79.103 19.1875 76.4652 19.1875C72.4941 19.1875 69.637 16.6 69.637 12.7188C69.637 8.8375 72.4977 6.25 76.4652 6.25C79.103 6.25 81.2413 7.39641 82.3877 9.30109L79.6277 10.8931C79.0563 9.79703 77.9458 9.125 76.4652 9.125C74.2838 9.125 72.8714 10.5625 72.8714 12.7188ZM102.513 2.29688V18.8281H99.2783V2.29688H102.513ZM14.1891 0.5L27.468 23.5H0.910156L14.1891 0.5ZM47.3881 2.29688L37.4298 19.5469L27.4716 2.29688H31.2055L37.4298 13.0781L43.6542 2.29688H47.3881ZM68.5589 6.60938V10.0917C68.1995 9.9875 67.8186 9.91563 67.4089 9.91563C65.3209 9.91563 63.8152 11.3531 63.8152 13.5094V18.8281H60.5808V6.60938H63.8152V9.91563C63.8152 8.09 65.9391 6.60938 68.5589 6.60938Z",fill:"currentColor"})});var ed=e.i(89275);let eu={active:!0,breakpoints:{},delay:4e3,jump:!1,playOnInit:!0,stopOnFocusIn:!0,stopOnInteraction:!0,stopOnMouseEnter:!1,stopOnLastSnap:!1,rootNode:null};function eh(e={}){let t,s,r,n,a=null,o=0,i=!1,l=!1,c=!1,d=!1;function u(){if(!r){if(m()){c=!0;return}i||s.emit("autoplay:play"),function(){let{ownerWindow:e}=s.internalEngine();e.clearTimeout(o),o=e.setTimeout(w,n[s.selectedScrollSnap()]),a=new Date().getTime(),s.emit("autoplay:timerset")}(),i=!0}}function h(){r||(i&&s.emit("autoplay:stop"),function(){let{ownerWindow:e}=s.internalEngine();e.clearTimeout(o),o=0,a=null,s.emit("autoplay:timerstopped")}(),i=!1)}function p(){if(m())return c=i,h();c&&u()}function m(){let{ownerDocument:e}=s.internalEngine();return"hidden"===e.visibilityState}function x(){l||h()}function C(){l||u()}function f(){l=!0,h()}function g(){l=!1,u()}function w(){let{index:e}=s.internalEngine(),r=e.clone().add(1).get(),n=s.scrollSnapList().length-1,a=t.stopOnLastSnap&&r===n;if(s.canScrollNext()?s.scrollNext(d):s.scrollTo(0,d),s.emit("autoplay:select"),a)return h();u()}return{name:"autoplay",options:e,init:function(a,o){var i,l,c,m;let w,b;s=a;let{mergeOptions:j,optionsAtMedia:v}=o,y=j(eu,eh.globalOptions);if(t=v(j(y,e)),s.scrollSnapList().length<=1)return;d=t.jump,r=!1,i=s,l=t.delay,w=i.scrollSnapList(),n="number"==typeof l?w.map(()=>l):l(w,i);let{eventStore:L,ownerDocument:k}=s.internalEngine(),H=!!s.internalEngine().options.watchDrag,S=(c=s,m=t.rootNode,b=c.rootNode(),m&&m(b)||b);L.add(k,"visibilitychange",p),H&&s.on("pointerDown",x),H&&!t.stopOnInteraction&&s.on("pointerUp",C),t.stopOnMouseEnter&&L.add(S,"mouseenter",f),t.stopOnMouseEnter&&!t.stopOnInteraction&&L.add(S,"mouseleave",g),t.stopOnFocusIn&&s.on("slideFocusStart",h),t.stopOnFocusIn&&!t.stopOnInteraction&&L.add(s.containerNode(),"focusout",u),t.playOnInit&&u()},destroy:function(){s.off("pointerDown",x).off("pointerUp",C).off("slideFocusStart",h),h(),r=!0,i=!1},play:function(e){void 0!==e&&(d=e),u()},stop:function(){i&&h()},reset:function(){i&&u()},isPlaying:function(){return i},timeUntilNext:function(){return a?n[s.selectedScrollSnap()]-(new Date().getTime()-a):null}}}function ep(e){return"[object Object]"===Object.prototype.toString.call(e)||Array.isArray(e)}function em(e,t){let s=Object.keys(e),r=Object.keys(t);return s.length===r.length&&JSON.stringify(Object.keys(e.breakpoints||{}))===JSON.stringify(Object.keys(t.breakpoints||{}))&&s.every(s=>
1{let r=e[s],n=t[s];return"function"==typeof r?`${r}`==`${n}`:ep(r)&&ep(n)?em(r,n):r===n})}function ex(e){return e.concat().sort((e,t)=>e.name>t.name?1:-1).map(e=>e.options)}function eC(e){return"number"==typeof e}function ef(e){return"string"==typeof e}function eg(e){return"boolean"==typeof e}function ew(e){return"[object Object]"===Object.prototype.toString.call(e)}function eb(e){return Math.abs(e)}function ej(e){return Math.sign(e)}eh.globalOptions=void 0;function ev(e){return eH(e).map(Number)}function ey(e){return e[eL(e)]}function eL(e){return Math.max(0,e.length-1)}function ek(e,t=0){return Array.from(Array(e),(e,s)=>t+s)}function eH(e){return Object.keys(e)}function eS(e,t){return void 0!==t.MouseEvent&&e instanceof t.MouseEvent}function eV(){let e=[],t={add:function(s,r,n,a={passive:!0}){let o;return"addEventListener"in s?(s.addEventListener(r,n,a),o=()=>s.removeEventListener(r,n,a)):(s.addListener(n),o=()=>s.removeListener(n)),e.push(o),t},clear:function(){e=e.filter(e=>e())}};return t}function eM(e=0,t=0){let s=eb(e-t);function r(s){return s<e||s>t}return{length:s,max:t,min:e,constrain:function(s){return r(s)?s<e?e:t:s},reachedAny:r,reachedMax:function(e){return e>t},reachedMin:function(t){return t<e},removeOffset:function(e){return s?e-s*Math.ceil((e-t)/s):e}}}function eN(e){let t=e;function s(e){return eC(e)?e:e.get()}return{get:function(){return t},set:function(e){t=s(e)},add:function(e){t+=s(e)},subtract:function(e){t-=s(e)}}}function e_(e,t){let s="x"===e.scroll?function(e){return`translate3d(${e}px,0px,0px)`}:function(e){return`translate3d(0px,${e}px,0px)`},r=t.style,n=null,a=!1;return{clear:function(){!a&&(r.transform="",t.getAttribute("style")||t.removeAttribute("style"))},to:function(t){if(a)return;let o=Math.round(100*e.direction(t))/100;o!==n&&(r.transform=s(o),n=o)},toggleActive:function(e){a=!e}}}let eR={align:"center",axis:"x",container:null,slides:null,containScroll:"trimSnaps",direction:"ltr",slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function eZ(e,t,s){let r,n,a,o,i,l,c,d,u=e.ownerDocument,h=u.defaultView,p=function(e){function t(e,t){return function e(t,s){return[t,s].reduce((t,s)=>(eH(s).forEach(r=>{let n=t[r],a=s[r],o=ew(n)&&ew(a);t[r]=o?e(n,a):a}),t),{})}(e,t||{})}return{mergeOptions:t,optionsAtMedia:function(s){let r=s.breakpoints||{},n=eH(r).filter(t=>e.matchMedia(t).matches).map(e=>r[e]).reduce((e,s)=>t(e,s),{});return t(s,n)},optionsMediaQueries:function(t){return t.map(e=>eH(e.breakpoints||{})).reduce((e,t)=>e.concat(t),[]).map(e.matchMedia)}}}(h),m=(d=[],{init:function(e,t){return(d=t.filter(({options:e})=>!1!==p.optionsAtMedia(e).active)).forEach(t=>t.init(e,p)),t.reduce((e,t)=>Object.assign(e,{[t.name]:t}),{})},destroy:function(){d=d.filter(e=>e.destroy())}}),x=eV(),C=(n={},a={init:function(e){r=e},emit:function(e){return(n[e]||[]).forEach(t=>t(r,e)),a},off:function(e,t){return n[e]=(n[e]||[]).filter(e=>e!==t),a},on:function(e,t){return n[e]=(n[e]||[]).concat([t]),a},clear:function(){n={}}}),{mergeOptions:f,optionsAtMedia:g,optionsMediaQueries:w}=p,{on:b,off:j,emit:v}=C,y=!1,L=f(eR,eZ.globalOptions),k=f(L),H=[];function S(t,s){y||(k=g(L=f(L,t)),H=s||H,function(){let{container:t,slides:s}=k;l=(ef(t)?e.querySelector(t):t)||e.children[0];let r=ef(s)?l.querySelectorAll(s):s;c=[].slice.call(r||l.children)}(),o=function t(s){let r=function(e,t,s,r,n,a,o){var i,l;let c,d,u,h,p,m,x,C,f,g,w,b,j,v,{align:y,axis:L,direction:k,startIndex:H,loop:S,duration:V,dragFree:M,dragThreshold:N,inViewThreshold:_,slidesToScroll:R,skipSnaps:Z,containScroll:E,watchResize:P,watchSlides:O,watchDrag:A,watchFocus:T}=a,I={measure:function(e){let{offsetTop:t,offsetLeft:s,offsetWidth:r,offsetHeight:n}=e;return{top:t,right:s+r,bottom:t+n,left:s,width:r,height:n}}},B=I.measure(t),z=s.map(I.measure),D=(d="rtl"===k,h=(u="y"===L)||!d?1:-1,p=u?"top":d?"right":"left",m=u?"bottom":d?"left":"right",{scroll:u?"y":"x",cross:u?"x":"y",startEdge:p,endEdge:m,measureSize:function(e){let{height:t,width:s}=e;return u?t:s},direction:function(e){return e*h}}),F=D.measureSize(B),q={measure:function(e){return e/100*F}},U=(i=y,l=F,c={start:function(){return 0},center:function(e){return(l-e)/2},end:function(e){return l-e}},{measure:function(e,t){return ef(i)?c[i](e):i(l,e,t)}}),K=!S&&!!E,{slideSizes:W,slideSizesWithGaps:Q,startGap:Y,endGap:$}=function(e,t,s,r,n,a){let{measureSize:o,startEdge:i,endEdge:l}=e,c=s[0]&&n,d=function(){if(!c)return 0;let e=s[0];return eb(t[i]-e[i])}(),u=c?parseFloat(a.getComputedStyle(ey(r)).getPropertyValue(`margin-${l}`)):0,h=s.map(o),p=s.map((e,t,s)=>{let r=t===eL(s);return t?r?h[t]+u:s[t+1][i]-e[i]:h[t]+d}).map(eb);return{slideSizes:h,slideSizesWithGaps:p,startGap:d,endGap:u}}(D,B,z,s,S||!!E,n),G=function(e,t,s,r,n,a,o,i){let{startEdge:l,endEdge:c,direction:d}=e,u=eC(s);return{groupSlides:function(e){return u?ev(e).filter(e=>e%s==0).map(t=>e.slice(t,t+s)):e.length?ev(e).reduce((s,u,h)=>{let p=ey(s)||0,m=u===eL(e),x=n[l]-a[p][l],C=n[l]-a[u][c],f=r||0!==p?0:d(o),g=eb(C-(!r&&m?d(i):0)-(x+f));return h&&g>
1t+2&&s.push(u),m&&s.push(e.length),s},[]).map((t,s,r)=>{let n=Math.max(r[s-1]||0);return e.slice(n,t)}):[]}}}(D,F,R,S,B,z,Y,$),{snaps:X,snapsAligned:J}=function(e,t,s,r,n){let{startEdge:a,endEdge:o}=e,{groupSlides:i}=n,l=i(r).map(e=>ey(e)[o]-e[0][a]).map(eb).map(t.measure),c=r.map(e=>s[a]-e[a]).map(e=>-eb(e)),d=i(c).map(e=>e[0]).map((e,t)=>e+l[t]);return{snaps:c,snapsAligned:d}}(D,U,B,z,G),ee=-ey(X)+ey(Q),{snapsContained:et,scrollContainLimit:es}=function(e,t,s,r){let n,a,o=eM(-t+e,0),i=s.map((e,t)=>{let{min:r,max:n}=o,a=o.constrain(e),i=t===eL(s);return t?i||function(e,t){return 1>=eb(e-t)}(r,a)?r:function(e,t){return 1>=eb(e-t)}(n,a)?n:a:n}).map(e=>parseFloat(e.toFixed(3))),l=(n=i[0],a=ey(i),eM(i.lastIndexOf(n),i.indexOf(a)+1));return{snapsContained:function(){if(t<=e+2)return[o.max];if("keepSnaps"===r)return i;let{min:s,max:n}=l;return i.slice(s,n)}(),scrollContainLimit:l}}(F,ee,J,E),er=K?et:J,{limit:en}=(x=er[0],{limit:eM(S?x-ee:ey(er),x)}),ea=function e(t,s,r){let{constrain:n}=eM(0,t),a=t+1,o=i(s);function i(e){return r?eb((a+e)%a):n(e)}function l(){return e(t,o,r)}let c={get:function(){return o},set:function(e){return o=i(e),c},add:function(e){return l().set(o+e)},clone:l};return c}(eL(er),H,S),eo=ea.clone(),ei=ev(s),el=function(e,t,s,r){let n=eV(),a=1e3/60,o=null,i=0,l=0;function c(e){if(!l)return;o||(o=e,s(),s());let n=e-o;for(o=e,i+=n;i>=a;)s(),i-=a;r(i/a),l&&(l=t.requestAnimationFrame(c))}function d(){t.cancelAnimationFrame(l),o=null,i=0,l=0}return{init:function(){n.add(e,"visibilitychange",()=>{e.hidden&&(o=null,i=0)})},destroy:function(){d(),n.clear()},start:function(){l||(l=t.requestAnimationFrame(c))},stop:d,update:s,render:r}}(r,n,()=>(({dragHandler:e,scrollBody:t,scrollBounds:s,options:{loop:r}})=>{r||s.constrain(e.pointerDown()),t.seek()})(eA),e=>(({scrollBody:e,translate:t,location:s,offsetLocation:r,previousLocation:n,scrollLooper:a,slideLooper:o,dragHandler:i,animation:l,eventHandler:c,scrollBounds:d,options:{loop:u}},h)=>{let p=e.settled(),m=!d.shouldConstrain(),x=u?p:p&&m,C=x&&!i.pointerDown();C&&l.stop();let f=s.get()*h+n.get()*(1-h);r.set(f),u&&(a.loop(e.direction()),o.loop()),t.to(r.get()),C&&c.emit("settle"),x||c.emit("scroll")})(eA,e)),ec=er[ea.get()],ed=eN(ec),eu=eN(ec),eh=eN(ec),ep=eN(ec),em=function(e,t,s,r,n){let a=0,o=0,i=n,l=.68,c=e.get(),d=0;function u(e){return i=e,p}function h(e){return l=e,p}let p={direction:function(){return o},duration:function(){return i},velocity:function(){return a},seek:function(){let t=r.get()-e.get(),n=0;return i?(s.set(e),a+=t/i,a*=l,c+=a,e.add(a),n=c-d):(a=0,s.set(r),e.set(r),n=t),o=ej(n),d=c,p},settled:function(){return .001>eb(r.get()-t.get())},useBaseFriction:function(){return h(.68)},useBaseDuration:function(){return u(n)},useFriction:h,useDuration:u};return p}(ed,eh,eu,ep,V),ex=function(e,t,s,r,n){let{reachedAny:a,removeOffset:o,constrain:i}=r;function l(e){return e.concat().sort((e,t)=>eb(e)-eb(t))[0]}function c(t,r){let n=[t,t+s,t-s];if(!e)return t;if(!r)return l(n);let a=n.filter(e=>ej(e)===r);return a.length?l(a):ey(n)-s}return{byDistance:function(s,r){let l=n.get()+s,{index:d,distance:u}=function(s){let r=e?o(s):i(s),{index:n}=t.map((e,t)=>({diff:c(e-r,0),index:t})).sort((e,t)=>eb(e.diff)-eb(t.diff))[0];return{index:n,distance:r}}(l),h=!e&&a(l);if(!r||h)return{index:d,distance:s};let p=s+c(t[d]-u,0);return{index:d,distance:p}},byIndex:function(e,s){let r=c(t[e]-n.get(),s);return{index:e,distance:r}},shortcut:c}}(S,er,ee,en,ep),ew=function(e,t,s,r,n,a,o){function i(n){let i=n.distance,l=n.index!==t.get();
1a.add(i),i&&(r.duration()?e.start():(e.update(),e.render(1),e.update())),l&&(s.set(t.get()),t.set(n.index),o.emit("select"))}return{distance:function(e,t){i(n.byDistance(e,t))},index:function(e,s){let r=t.clone().set(e);i(n.byIndex(r.get(),s))}}}(el,ea,eo,em,ex,ep,o),eR=function(e){let{max:t,length:s}=e;return{get:function(e){return s?-((e-t)/s):0}}}(en),eZ=eV(),eE=(f={},g=null,w=null,b=!1,{init:function(){C=new IntersectionObserver(e=>{b||(e.forEach(e=>{f[s.indexOf(e.target)]=e}),g=null,w=null,o.emit("slidesInView"))},{root:t.parentElement,threshold:_}),s.forEach(e=>C.observe(e))},destroy:function(){C&&C.disconnect(),b=!0},get:function(e=!0){if(e&&g)return g;if(!e&&w)return w;let t=eH(f).reduce((t,s)=>{let r=parseInt(s),{isIntersecting:n}=f[r];return(e&&n||!e&&!n)&&t.push(r),t},[]);return e&&(g=t),e||(w=t),t}}),{slideRegistry:eP}=function(e,t,s,r,n,a){let o,{groupSlides:i}=n,{min:l,max:c}=r;return{slideRegistry:(o=i(a),1===s.length?[a]:e&&"keepSnaps"!==t?o.slice(l,c).map((e,t,s)=>{let r=t===eL(s);return t?r?ek(eL(a)-ey(s)[0]+1,ey(s)[0]):e:ek(ey(s[0])+1)}):o)}}(K,E,er,es,G,ei),eO=function(e,t,s,r,n,a,o,i){let l={passive:!0,capture:!0},c=0;function d(e){"Tab"===e.code&&(c=new Date().getTime())}return{init:function(u){i&&(a.add(document,"keydown",d,!1),t.forEach((t,d)=>{a.add(t,"focus",t=>{(eg(i)||i(u,t))&&function(t){if(new Date().getTime()-c>10)return;o.emit("slideFocusStart"),e.scrollLeft=0;let a=s.findIndex(e=>e.includes(t));eC(a)&&(n.useDuration(0),r.index(a,0),o.emit("slideFocus"))}(d)},l)}))}}}(e,s,eP,ew,em,eZ,o,T),eA={ownerDocument:r,ownerWindow:n,eventHandler:o,containerRect:B,slideRects:z,animation:el,axis:D,dragHandler:function(e,t,s,r,n,a,o,i,l,c,d,u,h,p,m,x,C,f){let{cross:g,direction:w}=e,b=["INPUT","SELECT","TEXTAREA"],j={passive:!1},v=eV(),y=eV(),L=eM(50,225).constrain(p.measure(20)),k={mouse:300,touch:400},H={mouse:500,touch:600},S=m?43:25,V=!1,M=0,N=0,_=!1,R=!1,Z=!1,E=!1;function P(e){if(!eS(e,r)&&e.touches.length>=2)return O(e);let t=a.readPoint(e),s=a.readPoint(e,g),o=eb(t-M),l=eb(s-N);if(!R&&!E&&(!e.cancelable||!(R=o>l)))return O(e);let d=a.pointerMove(e);o>x&&(Z=!0),c.useFriction(.3).useDuration(.75),i.start(),n.add(w(d)),e.preventDefault()}function O(e){var t;let s,r,n=d.byDistance(0,!1).index!==u.get(),o=a.pointerUp(e)*(m?H:k)[E?"mouse":"touch"],i=(t=w(o),s=u.add(-1*ej(t)),r=d.byDistance(t,!m).distance,m||eb(t)<L?r:C&&n?.5*r:d.byIndex(s.get(),0).distance),p=function(e,t){var s,r;if(0===e||0===t||eb(e)<=eb(t))return 0;let n=(s=eb(e),r=eb(t),eb(s-r));return eb(n/e)}(o,i);R=!1,_=!1,y.clear(),c.useDuration(S-10*p).useFriction(.68+p/50),l.distance(i,!m),E=!1,h.emit("pointerUp")}function A(e){Z&&(e.stopPropagation(),e.preventDefault(),Z=!1)}return{init:function(e){f&&v.add(t,"dragstart",e=>e.preventDefault(),j).add(t,"touchmove",()=>void 0,j).add(t,"touchend",()=>void 0).add(t,"touchstart",i).add(t,"mousedown",i).add(t,"touchcancel",O).add(t,"contextmenu",O).add(t,"click",A,!0);function i(i){(eg(f)||f(e,i))&&function(e){let i,l=eS(e,r);if((E=l,Z=m&&l&&!e.buttons&&V,V=eb(n.get()-o.get())>=2,!l||0===e.button)&&(i=e.target.nodeName||"",!b.includes(i))){let r;_=!0,a.pointerDown(e),c.useFriction(0).useDuration(0),n.set(o),r=E?s:t,y.add(r,"touchmove",P,j).add(r,"touchend",O).add(r,"mousemove",P,j).add(r,"mouseup",O),M=a.readPoint(e),N=a.readPoint(e,g),h.emit("pointerDown")}}(i)}},destroy:function(){v.clear(),y.clear()},pointerDown:function(){return _}}}(D,e,r,n,ep,function(e,t){let s,r;function n(e){return e.timeStamp}function a(s,r){let n=r||e.scroll,a=`client${"x"===n?"X":"Y"}`;return(eS(s,t)?s:s.touches[0])[a]}return{pointerDown:function(e){return s=e,r=e,a(e)},pointerMove:function(e){let t=a(e)-a(r),o=n(e)-n(s)>170;return r=e,o&&(s=e),t},pointerUp:function(e){if(!s||!r)return 0;let t=a(r)-a(s),o=n(e)-n(s),i=n(e)-n(r)>170,l=t/o;return o&&!i&&eb(l)>.1?l:0},readPoint:a}}(D,n),ed,el,ew,em,ex,ea,o,q,M,N,Z,A),eventStore:eZ,percentOfView:q,index:ea,indexPrevious:eo,limit:en,location:ed,offsetLocation:eh,previousLocation:eu,options:a,resizeHandler:function(e,t,s,r,n,a,o){let i,l,c=[e].concat(r),d=[],u=!1;function h(e){return n.measureSize(o.measure(e))}return{init:function(n){a&&(l=h(e),d=r.map(h),i=new ResizeObserver(s=>{(eg(a)||a(n,s))&&function(s){for(let a of s){if(u)return;let s=a.target===e,o=r.indexOf(a.target),i=s?l:d[o];if(eb(h(s?e:r[o])-i)>=.5){n.reInit(),t.emit("resize");break}}}(s)}),s.requestAnimationFrame(()=>
1{c.forEach(e=>i.observe(e))}))},destroy:function(){u=!0,i&&i.disconnect()}}}(t,o,n,s,D,P,I),scrollBody:em,scrollBounds:function(e,t,s,r,n){let a=n.measure(10),o=n.measure(50),i=eM(.1,.99),l=!1;function c(){return!l&&!!e.reachedAny(s.get())&&!!e.reachedAny(t.get())}return{shouldConstrain:c,constrain:function(n){if(!c())return;let l=e.reachedMin(t.get())?"min":"max",d=eb(e[l]-t.get()),u=s.get()-t.get(),h=i.constrain(d/o);s.subtract(u*h),!n&&eb(u)<a&&(s.set(e.constrain(s.get())),r.useDuration(25).useBaseFriction())},toggleActive:function(e){l=!e}}}(en,eh,ep,em,q),scrollLooper:function(e,t,s,r){let{reachedMin:n,reachedMax:a}=eM(t.min+.1,t.max+.1);return{loop:function(t){if(!(1===t?a(s.get()):-1===t&&n(s.get())))return;let o=-1*t*e;r.forEach(e=>e.add(o))}}}(ee,en,eh,[ed,eh,eu,ep]),scrollProgress:eR,scrollSnapList:er.map(eR.get),scrollSnaps:er,scrollTarget:ex,scrollTo:ew,slideLooper:function(e,t,s,r,n,a,o,i,l){let c=ev(n),d=ev(n).reverse(),u=m(p(d,o[0]),s,!1).concat(m(p(c,t-o[0]-1),-s,!0));function h(e,t){return e.reduce((e,t)=>e-n[t],t)}function p(e,t){return e.reduce((e,s)=>h(e,t)>0?e.concat([s]):e,[])}function m(n,o,c){let d=a.map((e,s)=>({start:e-r[s]+.5+o,end:e+t-.5+o}));return n.map(t=>{let r=c?0:-s,n=c?s:0,a=d[t][c?"end":"start"];return{index:t,loopPoint:a,slideLocation:eN(-1),translate:e_(e,l[t]),target:()=>i.get()>a?r:n}})}return{canLoop:function(){return u.every(({index:e})=>.1>=h(c.filter(t=>t!==e),t))},clear:function(){u.forEach(e=>e.translate.clear())},loop:function(){u.forEach(e=>{let{target:t,translate:s,slideLocation:r}=e,n=t();n!==r.get()&&(s.to(n),r.set(n))})},loopPoints:u}}(D,F,ee,W,Q,X,er,eh,s),slideFocus:eO,slidesHandler:(v=!1,{init:function(e){O&&(j=new MutationObserver(t=>{!v&&(eg(O)||O(e,t))&&function(t){for(let s of t)if("childList"===s.type){e.reInit(),o.emit("slidesChanged");break}}(t)})).observe(t,{childList:!0})},destroy:function(){j&&j.disconnect(),v=!0}}),slidesInView:eE,slideIndexes:ei,slideRegistry:eP,slidesToScroll:G,target:ep,translate:e_(D,t)};return eA}(e,l,c,u,h,s,C);return s.loop&&!r.slideLooper.canLoop()?t(Object.assign({},s,{loop:!1})):r}(k),w([L,...H.map(({options:e})=>e)]).forEach(e=>x.add(e,"change",V)),k.active&&(o.translate.to(o.location.get()),o.animation.init(),o.slidesInView.init(),o.slideFocus.init(R),o.eventHandler.init(R),o.resizeHandler.init(R),o.slidesHandler.init(R),o.options.loop&&o.slideLooper.loop(),l.offsetParent&&c.length&&o.dragHandler.init(R),i=m.init(R,H)))}function V(e,t){let s=_();M(),S(f({startIndex:s},e),t),C.emit("reInit")}function M(){o.dragHandler.destroy(),o.eventStore.clear(),o.translate.clear(),o.slideLooper.clear(),o.resizeHandler.destroy(),o.slidesHandler.destroy(),o.slidesInView.destroy(),o.animation.destroy(),m.destroy(),x.clear()}function N(e,t,s){k.active&&!y&&(o.scrollBody.useBaseFriction().useDuration(!0===t?0:k.duration),o.scrollTo.index(e,s||0))}function _(){return o.index.get()}let R={canScrollNext:function(){return o.index.add(1).get()!==_()},canScrollPrev:function(){return o.index.add(-1).get()!==_()},containerNode:function(){return l},internalEngine:function(){return o},destroy:function(){y||(y=!0,x.clear(),M(),C.emit("destroy"),C.clear())},off:j,on:b,emit:v,plugins:function(){return i},previousScrollSnap:function(){return o.indexPrevious.get()},reInit:V,rootNode:function(){return e},scrollNext:function(e){N(o.index.add(1).get(),e,-1)},scrollPrev:function(e){N(o.index.add(-1).get(),e,1)},scrollProgress:function(){return o.scrollProgress.get(o.offsetLocation.get())},scrollSnapList:function(){return o.scrollSnapList},scrollTo:N,selectedScrollSnap:_,slideNodes:function(){return c},slidesInView:function(){return o.slidesInView.get()},slidesNotInView:function(){return o.slidesInView.get(!1)}};return S(t,s),setTimeout(()=>C.emit("init"),0),R}function eE(e={},t=[]){let s=(0,B.useRef)(e),r=(0,B.useRef)(t),[n,a]=(0,B.useState)(),[o,i]=(0,B.useState)(),l=(0,B.useCallback)(()=>{n&&n.reInit(s.current,r.current)},[n]);return(0,B.useEffect)(()=>{em(s.current,e)||(s.current=e,l())},[e,l]),(0,B.useEffect)(()=>{!function(e,t){if(e.length!==t.length)return!1;let s=ex(e),r=ex(t);return s.every((e,t)=>em(e,r[t]))}(r.current,t)&&(r.current=t,l())},[t,l]),(0,B.useEffect)(()=>
1{if("u">typeof window&&window.document&&window.document.createElement&&o){eZ.globalOptions=eE.globalOptions;let e=eZ(o,s.current,r.current);return a(e),()=>e.destroy()}a(void 0)},[o,a]),[i,n]}eZ.globalOptions=void 0,eE.globalOptions=void 0;var eP=e.i(47475);function eO(){let[e,t]=eE({loop:!0},[eh({delay:5e3,stopOnInteraction:!1})]),[a,d]=(0,B.useState)(0),u=(0,B.useCallback)(e=>t&&t.scrollTo(e),[t]),h=(0,B.useCallback)(()=>{t&&d(t.selectedScrollSnap())},[t]);return(0,B.useEffect)(()=>{if(t)return h(),t.on("select",h),()=>{t.off("select",h)}},[t,h]),(0,s.jsxs)("section",{"data-area":"home_customers",className:"relative z-10 py-8 md:py-16",children:[(0,s.jsx)(f.default,{section:"customers"}),(0,s.jsx)(r.default,{}),(0,s.jsxs)(n.default,{children:[(0,s.jsxs)(i,{children:[(0,s.jsx)(l,{children:"Meet our Customers"}),(0,s.jsx)(c,{children:"Upstash powers companies of every size and industry, from cutting-edge AI to everyday retail"})]}),(0,s.jsxs)("div",{className:"mt-16 md:mt-24",children:[(0,s.jsx)("div",{className:"overflow-hidden",ref:e,children:(0,s.jsx)("div",{className:"flex",children:eT.filter(e=>e.quote).map(({name:e,icon:t,quote:r,slug:n})=>{let a=(0,s.jsxs)("div",{className:(0,o.default)("group flex h-full flex-col overflow-hidden px-4 py-3 sm:py-4","rounded-2xl bg-bg-mute md:rounded-4xl dark:bg-bg-mute dark:hover:bg-white","bg-white py-8 shadow-sm transition-colors sm:px-16 sm:py-10"),children:[(0,s.jsx)("span",{className:"flex h-10 items-center justify-center text-text transition-colors group-hover:text-primary group-hover:opacity-100 dark:text-white dark:opacity-80",children:t}),(0,s.jsxs)("p",{className:(0,o.default)("mt-4 grow md:text-xl","text-balance text-text-mute dark:text-text","transition-colors dark:group-hover:text-bg"),children:['"',r,'"']})]});return(0,s.jsx)("div",{className:"min-w-0 flex-[0_0_100%] px-2 md:px-3",children:n?(0,s.jsx)(eP.default,{href:`/customers/${n}`,children:a}):a},e)})})}),(0,s.jsx)("div",{className:"mt-6 flex justify-center gap-2",children:eT.filter(e=>e.quote).map((e,t)=>(0,s.jsx)("button",{onClick:()=>u(t),className:(0,o.default)("h-2 w-2 rounded-full transition-all duration-300",a===t?"w-8 bg-primary":"bg-text-mute hover:bg-text dark:bg-text dark:hover:bg-white"),"aria-label":`Go to slide ${t+1}`},t))})]}),(0,s.jsx)("div",{className:"mx-auto mt-16 grid max-w-[960px] grid-cols-2 gap-2 xs:grid-cols-3 md:mt-24 md:grid-cols-5 md:gap-3",children:eA.map(({name:e,Logo:t,slug:r,h:n=24})=>{let a=(0,s.jsx)("div",{className:(0,o.default)("group flex h-[72px] w-full items-center justify-center px-4","rounded-2xl bg-bg-mute transition-colors md:rounded-4xl dark:bg-bg-mute",r&&"transition-all hover:text-primary hover:shadow-sm dark:hover:bg-white"),children:(0,s.jsx)(t,{style:{height:n},className:"w-auto max-w-full"})});return r?(0,s.jsx)(eP.default,{href:`/customers/${r}`,"aria-label":e,children:a},e):(0,s.jsx)("div",{children:a},e)})}),(0,s.jsx)("div",{className:"mt-8 flex justify-center",children:(0,s.jsx)(eP.default,{href:"/customers",className:"text-lg font-semibold underline underline-offset-4 transition-colors hover:text-primary",children:"Read case studies →"})})]})]})}let eA=[{name:"Meta",Logo:e=>(0,s.jsxs)("svg",{viewBox:"0 0 948 191",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,s.jsx)("path",{fill:"currentColor",d:"m31.06,125.96c0,10.98 2.41,19.41 5.56,24.51 4.13,6.68 10.29,9.51 16.57,9.51 8.1,0 15.51-2.01 29.79-21.76 11.44-15.83 24.92-38.05 33.99-51.98l15.36-23.6c10.67-16.39 23.02-34.61 37.18-46.96 11.56-10.08 24.03-15.68 36.58-15.68 21.07,0 41.14,12.21 56.5,35.11 16.81,25.08 24.97,56.67 24.97,89.27 0,19.38-3.82,33.62-10.32,44.87-6.28,10.88-18.52,21.75-39.11,21.75l0-31.02c17.63,0 22.03-16.2 22.03-34.74 0-26.42-6.16-55.74-19.73-76.69-9.63-14.86-22.11-23.94-35.84-23.94-14.85,0-26.8,11.2-40.23,31.17-7.14,10.61-14.47,23.54-22.7,38.13l-9.06,16.05c-18.2,32.27-22.81,39.62-31.91,51.75-15.95,21.24-29.57,29.29-47.5,29.29-21.27,0-34.72-9.21-43.05-23.09-6.8-11.31-10.14-26.15-10.14-43.06z"}),(0,s.jsx)("path",{fill:"currentColor",d:"m24.49,37.3c14.24-21.95 34.79-37.3 58.36-37.3 13.65,0 27.22,4.04 41.39,15.61 15.5,12.65 32.02,33.48 52.63,67.81l7.39,12.32c17.84,29.72 27.99,45.01 33.93,52.22 7.64,9.26 12.99,12.02 19.94,12.02 17.63,0 22.03-16.2 22.03-34.74l27.4-.86c0,19.38-3.82,33.62-10.32,44.87-6.28,10.88-18.52,21.75-39.11,21.75-12.8,0-24.14-2.78-36.68-14.61-9.64-9.08-20.91-25.21-29.58-39.71l-25.79-43.08c-12.94-21.62-24.81-37.74-31.68-45.04-7.39-7.85-16.89-17.33-32.05-17.33-12.27,0-22.69,8.61-31.41,21.78z"}),(0,s.jsx)("path",{fill:"currentColor",d:"m82.35,31.23c-12.27,0-22.69,8.61-31.41,21.78-12.33,18.61-19.88,46.33-19.88,72.95 0,10.98 2.41,19.41 5.56,24.51l-26.48,17.44c-6.8-11.31-10.14-26.15-10.14-43.06 0-30.75 8.44-62.8 24.49-87.55 14.24-21.95 34.79-37.3 58.36-37.3z"}),(0,s.jsx)("path",{fill:"currentColor",d:"m347.94,6.04h35.93l61.09,110.52 61.1-110.52h35.15v181.6h-29.31v-139.18l-53.58,96.38h-27.5l-53.57-96.38v139.18h-29.31z m285.11,
167.71c-21.02,0-33.68,15.82-36.71,35.41h71.34c-1.47-20.18-13.11-35.41-34.63-35.41z m-65.77,46.57c0-41.22 26.64-71.22 66.28-71.22 38.99,0 62.27,29.62 62.27,73.42v8.05h-99.49c3.53,21.31 17.67,35.67 40.47,35.67 18.19,0 29.56-5.55 40.34-15.7l15.57,19.07c-14.67,13.49-33.33,21.27-56.95,21.27-42.91,0-68.49-31.29-68.49-70.56z m164.09-43.97h-26.98v-24h26.98v-39.69h28.28v39.69h40.99v24h-40.99v60.83c0,20.77 6.64,28.15 22.96,28.15 7.45,0 11.72-.64 18.03-1.69v23.74c-7.86,2.22-15.36,3.24-23.48,3.24-30.53,0-45.79-16.68-45.79-50.07z m188.35,23.34c-5.68-14.34-18.35-24.9-36.97-24.9-24.2,0-39.69,17.17-39.69,45.14 0,27.27 14.26,45.27 38.53,45.27 19.08,0 32.7-11.1 38.13-24.91z m28.28,87.95h-27.76v-18.94c-7.76,11.15-21.88,22.18-44.75,22.18-36.78,0-61.36-30.79-61.36-70.95 0-40.54 25.17-70.83 62.92-70.83 18.66,0 33.3,7.46 43.19,20.63v-17.38h27.76z"})]}),h:20},{name:"Coinbase",Logo:e=>(0,s.jsx)("svg",{viewBox:"0 9.85 24 4.3",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:(0,s.jsx)("path",{d:"M4.844 11.053c-.872 0-1.553.662-1.553 1.548s.664 1.542 1.553 1.542c.889 0 1.564-.667 1.564-1.547 0-.875-.664-1.543-1.564-1.543zm.006 2.452c-.497 0-.86-.386-.86-.904 0-.523.357-.909.854-.909.502 0 .866.392.866.91 0 .517-.364.903-.86.903zm1.749-1.778h.433v2.36h.693V11.11H6.599zm-5.052-.035c.364 0 .653.224.762.558h.734c-.133-.713-.722-1.197-1.49-1.197-.872 0-1.553.662-1.553 1.548 0 .887.664 1.543 1.553 1.543.75 0 1.351-.484 1.484-1.203h-.728a.78.78 0 01-.756.564c-.502 0-.855-.386-.855-.904 0-.523.347-.909.85-.909zm18.215.622l-.508-.075c-.242-.035-.415-.115-.415-.305 0-.207.225-.31.53-.31.336 0 .55.143.595.379h.67c-.075-.599-.537-.95-1.247-.95-.733 0-1.218.375-1.218.904 0 .506.317.8.958.892l.508.075c.249.034.387.132.387.316 0 .236-.242.334-.577.334-.41 0-.641-.167-.676-.42h-.681c.064.581.52.99 1.35.99.757 0 1.26-.346 1.26-.938 0-.53-.364-.806-.936-.892zM7.378 9.885a.429.429 0 00-.444.437c0 .254.19.438.444.438a.429.429 0 00.445-.438.429.429 0 00-.445-.437zm10.167 2.245c0-.645-.392-1.076-1.224-1.076-.785 0-1.224.397-1.31 1.007h.687c.035-.236.22-.432.612-.432.352 0 .525.155.525.345 0 .248-.317.311-.71.351-.531.058-1.19.242-1.19.933 0 .535.4.88 1.034.88.497 0 .809-.207.965-.535.023.293.242.483.548.483h.404v-.616h-.34v-1.34zm-.68.748c0 .397-.347.69-.769.69-.26 0-.48-.11-.48-.34 0-.293.353-.373.676-.408.312-.028.485-.097.572-.23zm-3.679-1.825c-.386 0-.71.162-.94.432V9.856h-.693v4.23h.68v-.391c.232.282.56.449.953.449.832 0 1.461-.656 1.461-1.543 0-.886-.64-1.548-1.46-1.548zm-.103 2.452c-.497 0-.86-.386-.86-.904 0-.517.369-.909.865-.909.503 0 .855.386.855.91 0 .517-.364.903-.86.903zm-3.187-2.452c-.45 0-.745.184-.919.443v-.385H8.29v2.975h.693v-1.617c0-.455.289-.777.716-.777.398 0 .647.282.647.69v1.704h.692v-1.755c0-.748-.386-1.278-1.142-1.278zM24 12.503c0-.851-.624-1.45-1.46-1.45-.89 0-1.542.668-1.542 1.548 0 .927.698 1.543 1.553 1.543.722 0 1.287-.426 1.432-1.03h-.722c-.104.264-.358.414-.699.414-.445 0-.78-.276-.854-.76H24v-.264zm-2.252-.23c.11-.414.422-.615.78-.615.392 0 .693.224.762.615Z"})}),h:19},{name:"Vercel",Logo:ec,h:22},{name:"Supabase",Logo:el.LogoSupabase,slug:"supabase",h:24},{name:"Midjourney",Logo:er,h:30},{name:"Zapier",Logo:ed.LogoZapier,slug:"zapier",h:24},{name:"GitBook",Logo:ee.LogoGitbook,slug:"gitbook",h:23},{name:"Polymarket",Logo:e=>(0,s.jsxs)("svg",{viewBox:"0 0 911 168",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,s.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M395.676 132.183V29.2346H378.683V132.183H395.676ZM228.862 96.1278V132.186H211.188V34.6007H249.334C256.841 34.6007 263.335 35.93 268.817 38.5885C274.299 41.247 278.474 44.9332 281.34 49.6475C284.206 54.3613 285.639 59.7346 285.639 65.7666C285.639 72.0667 284.217 77.4955 281.374 82.053C278.53 86.6104 274.391 90.0957 268.954 92.5088C263.517 94.9218 256.978 96.1278 249.334 96.1278H228.862ZM228.861 82.1873H249.334C255.658 82.1873 260.332 80.7347 263.358 77.8307C266.383 74.9261 267.896 70.9493 267.896 65.9003C267.896 62.7729 267.236 59.9019 265.917 57.2879C264.598 54.674 262.55 52.5741 259.775 50.9878C257 49.4015 253.52 48.6083 249.334 48.6083H228.861V82.1873ZM329.499 133.53C336.551 133.53 342.67 131.944 347.856 128.772C353.043 125.599 357.013 121.22 359.765 115.635C362.517 110.05 363.893 103.727 363.893 96.6673V95.2599C363.893 88.2002 362.517 81.8775 359.765 76.2924C357.013 70.7073 353.032 66.3172 347.823 63.122C342.613 59.9273 336.46 58.33 329.363 58.33C322.357 58.33 316.26 59.9273 311.074 63.122C305.888 66.3172 301.919 70.7073 299.166 76.2924C296.414 81.8775 295.037 88.2002 295.037 95.2599V96.6673C295.037 103.727 296.414 110.05 299.166 115.635C301.919 121.22 305.899 125.599 311.108 128.772C316.317 131.944 322.448 133.53 329.499 133.53ZM316.397 113.559C319.309 117.938 323.676 120.127 329.5 120.127C333.366 120.127 336.608 119.088 339.224 117.01C341.84 114.933 343.774 112.129 345.025 108.599C346.276 105.069 346.901 101.093 346.901 96.6691V95.2617C346.901 90.8825 346.276 86.9173 345.025 83.3649C343.774 79.8125 341.829 76.9866 339.19 74.8862C336.551 72.7863 333.276 71.7361 329.363 71.7361C325.496 71.7361 322.266 72.7863 319.673 74.8862C317.08 76.9866 315.157 79.8125 313.906 83.3649C312.655 86.9173 312.029 90.8825 312.029 95.2617V96.6691C312.029 103.55 313.486 109.18 316.397 113.559ZM435.067 156.07C431.586 159.667 426.616 161.465 420.155 161.465C417.926 161.465 415.22 161.063 412.035 160.259V147.457L415.174 147.592C419.223 147.592 422.305 146.888 424.421 145.48C426.536 144.073 428.208 
1141.604 429.437 138.074L431.757 131.908L405.825 59.657H424.182L439.536 108.316L454.413 59.657H472.497L443.085 143.168C441.22 148.172 438.547 152.473 435.067 156.07ZM498.752 132.19V79.7777C501.482 74.5498 506.099 71.9359 512.605 71.9359C516.882 71.9359 520.121 72.9635 522.329 75.0188C524.537 77.074 525.641 80.5373 525.641 85.4074V132.19H542.632V83.8662L542.563 82.3245C543.562 79.1519 545.259 76.6277 547.647 74.7507C550.036 72.8743 553.005 71.9359 556.555 71.9359C560.874 71.9359 564.116 72.9079 566.278 74.8514C568.44 76.795 569.521 80.2467 569.521 85.2065V132.19H586.512V85.2737C586.512 75.9347 584.443 69.1094 580.3 64.798C576.162 60.486 570.177 58.33 562.356 58.33C557.392 58.33 553.005 59.3021 549.181 61.2456C545.364 63.1891 542.197 65.9038 539.698 69.3891C537.833 65.6358 535.171 62.8539 531.714 61.0447C528.256 59.2349 524.206 58.33 519.566 58.33C515.016 58.33 510.956 59.1006 507.385 60.6423C503.813 62.1841 500.777 64.4067 498.275 67.3112L497.728 59.6703H481.76V132.19H498.752ZM636.991 131.319C633.76 132.793 630.099 133.53 626.002 133.53C621.179 133.53 616.862 132.592 613.038 130.715C609.215 128.839 606.234 126.247 604.101 122.941C601.963 119.634 600.894 115.925 600.894 111.815C600.894 104.085 603.816 98.1645 609.662 94.0534C615.508 89.9429 623.8 87.8876 634.533 87.8876H644.771V83.1958C644.771 79.3533 643.702 76.348 641.564 74.181C639.425 72.014 636.264 70.9302 632.075 70.9302C629.576 70.9302 627.368 71.3552 625.456 72.2039C623.544 73.0527 622.068 74.2146 621.022 75.6892C619.976 77.1638 619.453 78.8167 619.453 80.649H602.462C602.462 76.7614 603.723 73.1088 606.245 69.6907C608.773 66.2726 612.364 63.5243 617.03 61.4465C621.691 59.3687 627.025 58.33 633.033 58.33C638.676 58.33 643.656 59.2685 647.979 61.1449C652.302 63.0218 655.678 65.8367 658.113 69.59C660.548 73.3433 661.762 77.9233 661.762 83.3295V115.3C661.762 121.913 662.698 127.163 664.563 131.05V132.19H647.229C646.497 130.626 645.864 128.369 645.318 125.421C642.993 127.878 640.222 129.844 636.991 131.319ZM629.28 120.189C625.689 120.189 622.888 119.261 620.889 117.408C618.884 115.553 617.885 113.151 617.885 110.202C617.885 106.404 619.407 103.455 622.458 101.355C625.503 99.2552 629.989 98.205 635.898 98.205H644.771V111.744C643.499 114.067 641.482 116.056 638.734 117.709C635.98 119.362 632.83 120.189 629.28 120.189ZM695.797 82.7934V132.19H678.806V59.6703H694.977L695.454 67.8473C697.319 64.809 699.644 62.4631 702.415 60.8097C705.193 59.1568 708.401 58.33 712.038 58.33C712.997 58.33 714.072 58.4192 715.281 58.5981C716.484 58.777 717.384 58.9779 717.977 59.2013L717.837 74.9516C715.565 74.5944 713.311 74.4155 711.085 74.4155C703.485 74.4155 698.388 77.2083 695.797 82.7934ZM745.183 132.183V108.657L752.627 101.218L774.122 132.183H793.774L763.546 89.8242L790.909 59.6633H770.438L750.239 82.1161L745.183 88.2824V29.2346H728.262V132.183H745.183ZM851.354 129.643C846.577 132.234 840.796 133.53 834.02 133.53C826.832 133.53 820.55 132 815.181 128.939C809.818 125.879 805.698 121.689 802.833 116.372C799.968 111.055 798.533 105.09 798.533 98.4771V95.7289C798.533 88.2674 799.986 81.7102 802.903 76.058C805.814 70.4057 809.818 66.0375 814.908 62.9547C820.004 59.8718 825.74 58.33 832.108 58.33C839.07 58.33 844.916 59.8272 849.646 62.8209C854.376 65.8141 857.914 70.0033 860.256 75.3876C862.598 80.7718 863.772 87.0163 863.772 94.1206V101.158H815.664C815.977 104.866 816.959 108.151 818.598 111.01C820.231 113.87 822.451 116.104 825.252 117.713C828.047 119.322 831.312 120.126 835.043 120.126C842.684 120.126 848.826 117.177 853.469 111.279L862.546 119.925C859.861 123.812 856.131 127.052 851.354 129.643ZM846.984 89.0953H816.001C816.773 83.5993 818.528 79.3325 821.259 76.2942C823.985 73.2553 827.582 71.7361 832.039 71.7361C837.042 71.7361 840.732 73.2443 843.097 76.2606C845.462 79.2763 846.758 83.1304 846.984 87.8222V89.0953ZM910.974 131.921C907.702 132.993 904.018 133.529 899.921 133.529C893.913 133.529 889.183 131.898 885.725 128.636C882.268 125.374 880.542 120.169 880.542 113.02V72.0013H868.531V59.6691H880.542V41.9753H897.533V59.6691H910.497V72.0013H897.533V111.88C897.533 114.919 898.166 116.986 899.445 118.08C900.717 119.175 902.629 119.722 905.174 119.722C906.993 119.722 908.928 119.499 910.974 119.052V131.921Z"}),(0,s.jsx)("path",{d:"M136.267 152.495C136.267 159.76 136.267 163.392 133.891 165.192C131.516 166.993 128.019 166.012 121.024 164.049L8.63192 132.51C4.41793 131.328 2.31093 130.737 1.09248 129.129C-0.125977 127.522 -0.125977 125.333 -0.
1125977 120.957V47.0434C-0.125977 42.6667 -0.125977 40.4783 1.09248 38.8709C2.31093 37.2634 4.41792 36.6722 8.63191 35.4897L121.024 3.95096C128.019 1.98834 131.516 1.00703 133.891 2.80771C136.267 4.60839 136.267 8.24049 136.267 15.5047V152.495ZM27.9043 122.228L120.966 148.345V96.1133L27.9043 122.228ZM15.1738 110.111L108.217 84L15.1738 57.8887V110.111ZM27.9033 45.7725L120.966 71.8877V19.6553L27.9033 45.7725Z"})]}),h:22},{name:"Fly.io",Logo:J,h:24},{name:"Paul Smith",Logo:ei.LogoPaulSmith,slug:"paul-smith",h:22},{name:"Clay",Logo:({className:e,style:t})=>(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("img",{src:"/customer/clay-gray.png",alt:"Clay",width:1018,height:326,style:t,className:(0,o.default)(e,"dark:hidden")}),(0,s.jsx)("img",{src:"/customer/clay-gray-dark.png",alt:"Clay",width:1018,height:326,style:t,className:(0,o.default)(e,"hidden dark:block")})]}),h:30},{name:"fal",Logo:e=>(0,s.jsxs)("svg",{viewBox:"0 0 120 48",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,s.jsx)("path",{d:"M120 6.46345V41.6633C120 47.2476 119.937 47.4986 119.248 47.4986H110.724C110.034 47.4986 109.909 47.2476 109.909 41.6633V6.46345C109.909 0.879154 110.034 0.628174 110.724 0.628174H119.248C119.937 0.628174 120 0.879154 120 6.46345Z"}),(0,s.jsx)("path",{d:"M96.0997 27.0431V25.7255C96.0997 22.5882 94.6581 21.3333 92.1509 21.3333C89.7065 21.3333 88.3902 22.651 88.0142 24.9725C87.8888 25.6627 87.9515 26.2274 87.5754 26.2274H79.1138C78.6124 26.2274 78.6124 26.1019 78.6124 25.6627C78.6124 22.3372 81.7463 15.4353 92.6524 15.4353C100.362 15.4353 105.878 18.5098 105.878 27.0431V39.5921C105.878 42.4783 107.445 46.5568 107.445 47.1215C107.445 47.3724 107.257 47.4979 107.068 47.4979H97.6667C97.2279 47.4979 97.1652 47.247 96.8518 45.6783L96.6011 44.4862C96.4131 43.545 96.2877 43.2313 95.9117 43.2313C95.4102 43.2313 95.0968 44.3607 93.7179 45.6783C92.2136 47.0587 90.3959 47.9999 87.262 47.9999C82.185 47.9999 77.6095 45.1136 77.6095 38.8391C77.6095 31.8117 83.0625 28.8 91.1481 28.4862C95.3476 28.298 96.0997 28.7372 96.0997 27.0431ZM96.0997 36.1411V34.8862C96.0997 33.6313 95.7863 33.2548 94.7208 33.3176L92.4017 33.4431C89.4558 33.6313 87.7008 35.1372 87.7008 37.9607C87.7008 40.7215 89.205 42.1019 91.3988 42.1019C93.8433 42.1019 96.0997 39.8431 96.0997 36.1411Z"}),(0,s.jsx)("path",{d:"M60.5509 23.6548C60.5509 22.4627 60.0495 22.3372 57.7304 22.3372H56.6021C56.1634 22.3372 56.1007 22.0234 56.1007 19.4509V19.0117C56.1007 16.4392 56.1634 16.1882 56.6021 16.1882H57.9184C60.2375 16.1882 60.5509 15.9999 60.5509 14.8705V10.9804C60.5509 3.6392 64.2489 0 71.3943 0C74.2148 0 76.1579 0.439212 76.4713 0.627448C76.5966 0.752936 76.5966 0.941172 76.5966 3.26273V4.07842C76.5966 6.46272 76.5966 7.02742 76.4086 7.02742C76.2206 7.02742 75.3431 6.46272 73.8388 6.46272C71.8331 6.46272 70.5795 7.46664 70.5795 10.9804V14.8705C70.5795 15.9999 71.0182 16.1882 73.8388 16.1882H76.6593C77.2234 16.1882 77.2234 16.4392 77.2234 19.0117V19.4509C77.2234 22.0234 77.1607 22.3372 76.722 22.3372H73.8388C71.0182 22.3372 70.5795 22.4627 70.5795 23.6548V41.6626C70.5795 47.2469 70.3914 47.4979 69.89 47.4979H61.1777C60.6762 47.4979 60.5509 47.2469 60.5509 41.6626V23.6548Z"}),(0,s.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M30.1574 0.740479C30.9676 0.740479 31.6169 1.39923 31.6944 2.20567C32.3853 9.39891 38.1102 15.1234 45.3039 15.8142C46.1104 15.8917 46.7692 16.541 46.7692 17.3511V30.8959C46.7692 31.706 46.1104 32.3553 45.3039 32.4328C38.1102 33.1236 32.3853 38.8481 31.6944 46.0414C31.6169 46.8478 30.9676 47.5065 30.1574 47.5065H16.6118C15.8016 47.5065 15.1523 46.8478 15.0748 46.0414C14.384 38.8481 8.65901 33.1236 1.46528 32.4328C0.658799 32.3553 0 31.706 0 30.8959V17.3511C0 16.541 0.658803 15.8917 1.46529 15.8142C8.65902 15.1234 14.384 9.39891 15.0748 2.20567C15.1523 1.39923 15.8016 0.740479 16.6118 0.740479H30.1574ZM9.39037 24.0839C9.39037 31.865 15.6915 38.1728 23.4644 38.1728C31.2373 38.1728 37.5385 31.865 37.5385 24.0839C37.5385 16.3028 31.2373 9.99498 23.4644 9.99498C15.6915 9.99498 9.39037 16.3028 9.39037 24.0839Z"})]}),h:24},{name:"OpenRouter",Logo:eo,h:22},{name:"CodeRabbit",Logo:e=>
1(0,s.jsxs)("svg",{viewBox:"0 0 2152 313",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,s.jsx)("path",{d:"M470.612 105.981C479.309 89.978 491.434 77.4609 506.984 68.5204C522.537 59.5799 540.195 55.1096 559.876 55.1096C584.032 55.1096 604.676 61.6361 621.898 74.6C639.121 87.5639 650.537 105.266 656.337 127.707H601.868C597.827 119.035 592.027 112.508 584.645 107.949C577.178 103.389 568.747 101.154 559.256 101.154C543.971 101.154 531.672 106.518 522.181 117.336C512.695 128.154 507.95 142.638 507.95 160.698C507.95 178.758 512.695 193.242 522.181 204.06C531.672 214.878 543.971 220.243 559.256 220.243C568.747 220.243 577.178 218.007 584.645 213.448C592.113 208.888 597.827 202.361 601.868 193.689H656.337C650.537 216.13 639.029 233.743 621.898 246.617C604.676 259.492 584.032 265.929 559.876 265.929C540.195 265.929 522.537 261.459 506.984 252.518C491.434 243.577 479.309 231.15 470.612 215.236C461.914 199.322 457.609 181.172 457.609 160.698C457.609 140.224 461.914 121.985 470.612 105.981Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M711.861 256.542C699.212 249.658 689.286 239.823 681.99 227.038C674.786 214.253 671.095 199.322 671.095 182.246C671.095 165.169 674.786 150.417 682.082 137.543C689.458 124.668 699.476 114.833 712.216 107.949C724.951 101.065 739.273 97.6675 755.085 97.6675C770.904 97.6675 785.22 101.065 797.96 107.949C810.701 114.833 820.713 124.668 828.095 137.543C835.477 150.417 839.076 165.348 839.076 182.246C839.076 199.143 835.385 214.074 827.917 226.948C820.45 239.823 810.345 249.658 797.519 256.542C784.693 263.426 770.376 266.824 754.472 266.824C738.568 266.824 724.423 263.426 711.775 256.542H711.861ZM778.807 212.644C785.484 205.58 788.825 195.478 788.825 182.246C788.825 169.014 785.576 159 779.162 151.848C772.657 144.784 764.754 141.208 755.263 141.208C745.772 141.208 737.605 144.695 731.192 151.668C724.779 158.642 721.615 168.834 721.615 182.156C721.615 195.478 724.779 205.491 731.014 212.554C737.25 219.617 745.159 223.194 754.65 223.194C764.135 223.194 772.222 219.617 778.807 212.554V212.644Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M859.284 137.367C865.519 124.582 874.133 114.748 884.937 107.863C895.746 100.979 907.781 97.5817 921.135 97.5817C931.766 97.5817 941.429 99.8165 950.215 104.376C959.001 108.936 965.941 115.016 970.944 122.615V46.2625H1020.5V264.413H970.944V240.81C966.291 248.678 959.7 254.936 951.092 259.675C942.484 264.413 932.465 266.738 921.135 266.738C907.781 266.738 895.746 263.251 884.937 256.277C874.133 249.303 865.611 239.38 859.284 226.505C853.048 213.63 849.885 198.789 849.885 181.802C849.885 164.815 853.048 150.063 859.284 137.278V137.367ZM960.668 152.387C953.814 145.146 945.469 141.48 935.629 141.48C925.788 141.48 917.444 145.056 910.589 152.209C903.741 159.361 900.313 169.285 900.313 181.802C900.313 194.319 903.741 204.333 910.589 211.753C917.444 219.084 925.788 222.839 935.629 222.839C945.469 222.839 953.814 219.173 960.668 211.932C967.523 204.69 970.944 194.766 970.944 182.159C970.944 169.553 967.523 159.629 960.668 152.387Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M1202.18 194.315H1090.08C1090.87 204.507 1094.12 212.376 1099.74 217.74C1105.45 223.104 1112.48 225.876 1120.74 225.876C1133.13 225.876 1141.73 220.601 1146.57 209.962H1199.28C1196.56 220.78 1191.73 230.525 1184.61 239.108C1177.58 247.78 1168.71 254.575 1158.08 259.492C1147.45 264.41 1135.58 266.824 1122.41 266.824C1106.6 266.824 1092.45 263.426 1080.15 256.542C1067.76 249.658 1058.1 239.823 1051.16 227.038C1044.22 214.253 1040.7 199.322 1040.7 182.246C1040.7 165.169 1044.13 150.238 1050.98 137.453C1057.83 124.668 1067.41 114.833 1079.8 107.949C1092.19 101.065 1106.33 97.6675 1122.41 97.6675C1138.48 97.6675 1151.93 100.975 1164.14 107.681C1176.26 114.387 1185.84 123.864 1192.69 136.291C1199.54 148.629 1202.97 163.113 1202.97 179.653C1202.97 184.392 1202.71 189.309 1202.09 194.405L1202.18 194.315ZM1152.37 166.331C1152.37 157.659 1149.47 150.775 1143.67 145.678C1137.87 140.582 1130.67 137.989 1121.97 137.989C1113.27 137.989 1106.68 140.403 1100.97 145.321C1095.26 150.238 1091.75 157.212 1090.43 166.242H1152.46L1152.37 166.331Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M1329.92 264.494L1287.67 186.353H1275.8V264.494H1226.25V57.5193H1309.37C1325.44 57.5193 1339.06 60.3802 1350.39 66.102C1361.73 71.8243 1370.16 79.6023 1375.78 89.5268C1381.41 99.4506 1384.22 110.537 1384.22 122.696C1384.22 136.465 1380.44 148.714 1372.8 159.532C1365.15 170.35 1353.91 178.039 1339.06 182.509L1385.97 264.494H1330.01H1329.92ZM1275.72 150.68H1306.47C1315.51 150.68 1322.37 148.445 1326.85 143.885C1331.42 139.326 1333.7 132.978 1333.7 124.752C1333.7 116.527 1331.42 110.716 1326.85 106.156C1322.28 101.596 1315.51 99.361 1306.47 99.361H1275.72V150.68Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M1408.9 137.357C1415.15 124.572 1423.75 114.737 1434.56 107.853C1445.37 100.968 1457.49 98.5544 1470.76 98.5544H1570.12V264.403H1520.57V241.157C1515.74 248.846 1509.06 255.015 1500.46 259.754C1491.84 264.492 1481.83 266.817 1470.49 266.817C1457.32 266.817 1445.37 263.33 1434.56 256.356C1423.75 249.382 1415.23 239.459 1408.9 226.584C1402.67 213.709 1399.51 198.868 1399.51 181.881C1399.51 164.894 1402.67 150.142 1408.9 137.357ZM1510.29 152.377C1503.44 
1145.135 1495.09 141.47 1485.26 141.47C1475.42 141.47 1467.07 145.046 1460.22 152.198C1453.36 159.351 1449.93 169.274 1449.93 181.792C1449.93 194.309 1453.36 204.322 1460.22 211.743C1467.07 219.074 1475.42 222.829 1485.26 222.829C1495.09 222.829 1503.44 219.164 1510.29 211.921C1517.14 204.679 1520.57 194.755 1520.57 182.149C1520.57 169.543 1517.14 159.619 1510.29 152.377Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M1669.83 104.645C1678.53 99.9061 1688.46 97.5817 1699.7 97.5817C1713.06 97.5817 1725.09 100.979 1735.9 107.863C1746.71 114.748 1755.23 124.582 1761.56 137.367C1767.79 150.152 1770.95 164.993 1770.95 181.891C1770.95 198.789 1767.79 213.72 1761.56 226.594C1755.32 239.469 1746.71 249.393 1735.9 256.367C1725.09 263.34 1713.06 266.827 1699.7 266.827C1688.28 266.827 1678.36 264.503 1669.83 259.943C1661.31 255.294 1654.63 249.214 1649.8 241.525V264.503H1600.25V46.2625H1649.8V123.241C1654.46 115.552 1661.14 109.383 1669.83 104.645ZM1710.25 152.298C1703.4 145.146 1694.96 141.569 1684.86 141.569C1674.76 141.569 1666.67 145.235 1659.82 152.477C1652.97 159.718 1649.54 169.643 1649.54 182.249C1649.54 194.855 1652.97 204.779 1659.82 212.021C1666.67 219.263 1675.02 222.929 1684.86 222.929C1694.7 222.929 1703.13 219.263 1710.07 211.842C1717.01 204.511 1720.53 194.498 1720.53 181.891C1720.53 169.285 1717.1 159.45 1710.25 152.298Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M1860.75 104.645C1869.45 99.9061 1879.38 97.5817 1890.62 97.5817C1903.98 97.5817 1916.01 100.979 1926.82 107.863C1937.62 114.748 1946.15 124.582 1952.47 137.367C1958.71 150.152 1961.87 164.993 1961.87 181.891C1961.87 198.789 1958.71 213.72 1952.47 226.594C1946.23 239.469 1937.62 249.393 1926.82 256.367C1916.01 263.34 1903.98 266.827 1890.62 266.827C1879.2 266.827 1869.27 264.503 1860.75 259.943C1852.23 255.294 1845.55 249.214 1840.72 241.525V264.503H1791.17V46.2625H1840.72V123.241C1845.37 115.552 1852.05 109.383 1860.75 104.645ZM1901.16 152.298C1894.31 145.146 1885.88 141.569 1875.77 141.569C1865.67 141.569 1857.59 145.235 1850.73 152.477C1843.89 159.718 1840.46 169.643 1840.46 182.249C1840.46 194.855 1843.89 204.779 1850.73 212.021C1857.59 219.263 1865.93 222.929 1875.77 222.929C1885.61 222.929 1894.05 219.263 1900.99 211.842C1907.93 204.511 1911.44 194.498 1911.44 181.891C1911.44 169.285 1908.02 159.45 1901.16 152.298Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M1985.77 75.0464C1980.23 69.8604 1977.51 63.4236 1977.51 55.7346C1977.51 48.0456 1980.23 41.3399 1985.77 36.1546C1991.3 30.9686 1998.33 28.376 2007.02 28.376C2015.72 28.376 2022.49 30.9686 2028.02 36.1546C2033.56 41.3399 2036.28 47.8664 2036.28 55.7346C2036.28 63.6022 2033.56 69.8604 2028.02 75.0464C2022.49 80.2317 2015.54 82.8243 2007.02 82.8243C1998.5 82.8243 1991.21 80.2317 1985.77 75.0464ZM2031.71 99.9903V264.497H1982.16V99.9007H2031.71V99.9903Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M2151.9 221.67V264.406H2126.68C2108.76 264.406 2094.71 259.935 2084.69 250.995C2074.67 242.054 2069.67 227.481 2069.67 207.186V141.741H2049.99V99.8987H2069.67V59.845H2119.22V99.8987H2151.64V141.741H2119.22V207.812C2119.22 212.729 2120.36 216.306 2122.74 218.451C2125.02 220.597 2128.89 221.67 2134.33 221.67H2151.99H2151.9Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M156.513 0C242.945 0 313.013 70.0675 313.013 156.5C313.013 242.933 242.945 313 156.513 313C70.0801 313 0.0126953 242.933 0.0126953 156.5C0.0126953 70.0675 70.0801 0 156.513 0ZM128.046 43.8221C134.925 93.2711 163.335 80.3865 180.064 114.469C180.064 114.469 151.832 76.094 105.416 90.2231C105.421 90.2345 122.342 125.741 172.373 132.997C172.379 133.016 176.385 146.743 177.593 149.16C177.593 149.16 100.527 108.971 77.1268 186.106C59.7119 182.161 53.8706 201.066 73.8864 213.98C73.8864 213.98 77.2923 200.455 85.5855 196.442C85.5524 196.478 67.8081 216.312 88.7166 240.061H163.831C165.646 237.054 173.678 221.236 153.812 209.263C167.835 209.062 179.251 235.514 191.532 240.243H209.396C209.999 238.773 211.262 234.375 208.296 230.419C203.721 225.172 193.706 225.882 193.795 216.178C197.253 171.04 264.937 184.902 262.786 130.577C262.769 130.554 240.969 102.703 213.57 101.109C195.882 100.065 191.598 102.428 190.83 104.188C189.732 95.062 181.932 52.7824 128.046 43.8221Z",fill:"currentColor"})]}),h:22},{name:"OpenCode",Logo:e=>
1(0,s.jsxs)("svg",{viewBox:"0 0 234 42",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,s.jsx)("path",{d:"M18 12H6V30H18V12ZM24 36H0V6H24V36Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M36 30H48V12H36V30ZM54 36H36V42H30V6H54V36Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M84 24H66V30H84V36H60V6H84V24ZM66 18H78V12H66V18Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M108 12H96V36H90V6H108V12ZM114 36H108V12H114V36Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M144 12H126V30H144V36H120V6H144V12Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M168 12H156V30H168V12ZM174 36H150V6H174V36Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M198 12H186V30H198V12ZM204 36H180V6H198V0H204V36Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M216 12V18H228V12H216ZM234 24H216V30H234V36H210V6H234V24Z",fill:"currentColor"})]}),h:20}],eT=[{name:"Vercel",icon:(0,s.jsx)(ec,{height:22})},{name:"Supabase",slug:"supabase",icon:(0,s.jsx)(el.LogoSupabase,{height:24}),quote:(0,s.jsx)(s.Fragment,{children:"At our scale, it's important to use the right tool for the right workload. Upstash lets us power low-latency edge use cases globally, while still keeping our overall architecture simple and cost-effective."})},{name:"Okara",slug:"okara",icon:(0,s.jsx)(en.LogoOkara,{height:30}),quote:(0,s.jsx)(s.Fragment,{children:"We launched and immediately saw significant demand. Upstash was one of those decisions that we made very quickly because it solved real scaling problems without slowing down the team."})},{name:"Midjourney",icon:(0,s.jsx)(er,{height:30})},{name:"Fly.io",icon:(0,s.jsx)(J,{height:22})},{name:"Paul Smith",slug:"paul-smith",icon:(0,s.jsx)(ei.LogoPaulSmith,{height:22}),quote:(0,s.jsx)(s.Fragment,{children:"Upstash's global Redis has been a game changer. Low latency, zero downtime, and easy to use across frontend and backend. With brilliant customer service and fast response times, we deliver the best shopping experience."})},{name:"Openrouter",icon:(0,s.jsx)(eo,{height:22})},{name:"OpenArt",slug:"openart",icon:(0,s.jsx)(ea.LogoOpenart,{height:20}),quote:(0,s.jsx)(s.Fragment,{children:"Developer experience became significantly better than what we experienced with traditional cloud service providers. The observability improvements alone were game-changing for our small team."})},{name:"Customer.io",icon:(0,s.jsx)(e=>(0,s.jsxs)("svg",{viewBox:"0 0 200 27",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,s.jsxs)("g",{children:[(0,s.jsx)("path",{d:"M43.4095 9.00596C45.2115 9.00596 46.7607 10.0682 47.2033 11.8182H51.2184C50.7758 8.09963 47.4247 5.63086 43.4412 5.63086C38.8254 5.63086 35 9.03705 35 14.0057C35 19.1929 38.6989 22.5367 43.378 22.5367C47.2034 22.5367 50.6178 20.2243 51.2184 16.3183H47.2034C46.6976 18.1618 45.18 19.1618 43.4095 19.1618C40.9752 19.1618 39.1732 17.0057 39.1732 14.0057C39.1732 11.0683 40.9119 9.00596 43.4095 9.00596Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M63.3895 14.9431C63.3895 17.7869 61.777 19.0994 60.0382 19.0994C58.1097 19.0994 56.845 17.818 56.845 15.5057V6.00586H52.7666V16.1617C52.7666 20.3805 55.2326 22.5366 58.7104 22.5366C60.7655 22.5366 62.4408 21.7867 63.4843 20.2867V22.1929H67.4362V6.00586H63.3895V14.9431Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M77.7014 12.4426L75.5506 11.9806C74.9273 11.8573 74.4178 11.6725 74.0234 11.426C73.6284 11.1795 73.4311 10.8305 73.4311 10.3783C73.4311 9.61678 74.2408 8.78569 75.8312 8.78569C76.8018 8.78569 78.5585 9.16188 78.7872 10.8509H82.6853C82.5125 9.93907 81.7164 5.60303 75.8935 5.60303C73.9611 5.60303 72.4337 6.08057 71.3116 7.03582C70.1894 7.99069 69.6284 9.19767 69.6284 10.6557C69.6284 11.6416 69.8778 12.4478 70.3765 13.0742C70.8752 13.701 71.5191 14.1939 72.309 14.5529C73.0985 14.9125 73.9503 15.1845 74.865 15.3694L77.1404 15.8315C77.8051 15.9756 78.3388 16.1537 78.652 16.4633C79.4947 17.2961 79.0624 19.2587 76.3099 19.2587C73.3878 19.2587 72.967 17.1647 72.9234 16.5615H68.9961C68.9961 17.7809 69.9516 22.5479 76.4857 22.5479C77.8572 22.5479 79.0261 22.3168 79.9923 21.8546C80.9587 21.3925 81.6959 20.7663 82.2053 19.9754C82.7143 19.1848 82.969 18.3069 82.969 17.3412C82.969 14.5655 81.2187 13.1474 77.7014 12.4426Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M90.1221 16.883V9.23921H93.9159V6.00598H90.1182V1.05908H86.1047V4.03514L88.0987 6.00598H83.3564V9.23921H86.107V17.3347C86.107 18.4952 86.4559 23.7394 93.9662 22.3402V18.9785C91.8379 19.607 90.1221 18.9677 90.1221 16.883Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M102.863 5.63086C98.1206 5.63086 94.2319 8.91219 94.2319 14.0057C94.2319 19.2556 98.0572 22.5367 102.863 22.5367C107.605 22.5367 111.462 19.1929 111.462 14.0057C111.462 8.84951 107.637 5.63086 102.863 5.63086ZM102.863 19.1618C100.207 19.1618 98.405 17.0681 98.405 14.0057C98.405 11.037 100.175 9.00596 102.863 9.00596C105.487 9.00596 107.289 11.0683 107.289 14.0057C107.289 17.0995 105.487 19.1618 102.863 19.1618Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M132.39 5.63086C130.114 5.63086 128.154 6.56853 127.047 8.3185C126.004 6.44344 124.075 5.63086 122.147 5.63086C119.997 5.63086 118.322 6.44342 117.342 7.9121V6.00593H113.39V22.193H117.436V13.1934C117.436 10.4433 119.049 9.06839 120.788 9.06839C122.526 9.06839 123.854 10.2247 123.854 12.5683V22.193H127.901V13.1934C127.901 10.4746 129.513 9.06839 131.252 9.06839C132.991 9.06839 134.319 10.2247 134.319 12.5683V22.193H138.397V11.912C138.397 7.34975 135.584 5.63086 132.39 5.63086Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M148.481 5.63086C144.118 5.63086 140.103 8.84951 140.103 13.9746C140.103 19.3494 143.992 22.5367 148.639 22.5367C152.022 22.5367 155.531 21.0056 156.543 17.4432H152.559C151.801 18.8805 150.283 19.3805 148.765 19.3805C146.426 19.3805 144.529 17.7869 144.213 15.2244H156.701V14.3494C156.701 8.59955 152.907 5.63086 148.481 5.63086ZM144.181 12.3808C144.466 10.0996 146.268 8.756 148.418 8.756C150.694 8.756 152.338 10.1933 152.528 12.3808H144.181Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M168.334 9.75563V5.97463C168.05 5.91195 167.639 5.88086 167.196 5.88086C165.773 5.88086 164.857 6.19325 163.876 6.94313C163.339 7.38063 162.928 7.91189 162.58 8.47449V6.00572H158.628V22.1928H162.675V13.4742C162.675 10.3182 164.951 9.6932 166.722 9.6932C167.165 9.6932 167.544 9.6932 168.334 9.75563Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M170.906 17.9731H166.458V22.1929H170.906V17.9731Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M178.752 6.00586H174.705V22.1929H178.752V6.00586Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M178.751 -0.0498047H174.706V3.94594H178.751V-0.0498047Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M189.342 5.63086C184.6 5.63086 180.711 8.91219 180.711 14.0057C180.711 19.2556 184.536 22.5367 189.342 22.5367C194.084 22.5367 197.941 19.1929 197.941 14.0057C197.941 8.84951 194.116 5.63086 189.342 5.63086ZM189.342 19.1618C186.686 19.1618 184.884 17.0681 184.884 14.0057C184.884 11.037 186.654 9.00596 189.342 9.00596C191.966 9.00596 193.768 11.0683 193.768 14.0057C193.768 17.0995 191.966 19.1618 189.342 19.1618Z",fill:"currentColor"})]}),(0,s.jsx)("path",{d:"M2.74288 17.3002L-0.52832 20.5584V27.05H6.03928L9.33562 23.7918L12.6068 20.5584L6.03928 14.042L2.74288 17.3002Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M9.33562 4.29241L6.03928 1.05908H-0.52832V7.55064L2.74288 10.8087L6.03928 14.0421L12.6068 7.55064L9.33562 4.29241Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M19.1996 1.05908H12.6069V7.55064L19.1996 14.0421L12.6069 20.5585V27.0501H19.1996L25.7672 20.5585V7.55064L19.1996 1.05908Z",fill:"currentColor"})]}),{height:18})},{name:"Dub.co",slug:"dub",quote:(0,s.jsx)(s.Fragment,{children:"The Upstash JS SDK is incredibly easy to use – all I needed to do was run npm install, initialize the Redis instance, and start running redis commands – super simple!"}),icon:(0,s.jsx)(X.LogoDubsh,{height:27})},{name:"Zapier",slug:"zapier",quote:(0,s.jsx)(s.Fragment,{children:"We chose Upstash specifically because it offers an HTTP interface for Redis, which perfectly suited our needs"}),icon:(0,s.jsx)(ed.LogoZapier,{height:24})},{name:"GitBook",icon:(0,s.jsx)(ee.LogoGitbook,{height:23})},{name:"Branch",slug:"branch",icon:(0,s.jsx)(Y.LogoBranch,{height:32}),quote:(0,s.jsx)(s.Fragment,{children:"Before Upstash we used Redis Cloud. This was not serverless, you had to think about instance size, memory usage etc. which we really don't want to do as it pulls our focus from product engineering, any time spent on operations like this is less t
1ime spent on our products and what differentiates Branch."})},{name:"Humata",slug:"humata",icon:(0,s.jsx)(et.LogoHumata,{height:32}),quote:(0,s.jsx)(s.Fragment,{children:"Before Upstash QStash, we struggled with upload reliability and request failures, but with their support, we've achieved over 99.9% reliability for millions of users. Their seamless integration with our serverless architecture has made developing new features, like importing entire knowledge bases, much simpler."})},{name:"Maker.co",slug:"maker",icon:(0,s.jsx)(es.LogoMaker,{height:24}),quote:(0,s.jsx)(s.Fragment,{children:"The ability to exceed the resident memory of the machine that Upstash has built opens up more possibilities, and allows reading and writing directly to Redis and skipping the middle-man"})},{name:"ClickFunnels",icon:(0,s.jsx)($.LogoClickfunnels,{height:18}),slug:"clickfunnels",quote:(0,s.jsx)(s.Fragment,{children:"We've been working closely together on improving alerting across their clusters, and it feels less like using a vendor and more like building the future of edge infrastructure together."})},{name:"Hashnode",icon:(0,s.jsx)(e=>(0,s.jsxs)("svg",{fill:"currentColor",viewBox:"0 0 334 56",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,s.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"M4.464 18.71c-5.133 5.131-5.133 13.449 0 18.58l14.868 14.862c5.133 5.13 13.454 5.13 18.586 0L52.786 37.29c5.133-5.13 5.133-13.448 0-18.579L37.918 3.848c-5.133-5.13-13.454-5.13-18.586 0L4.464 18.71ZM35.13 34.503a9.193 9.193 0 0 0 0-13.006 9.2 9.2 0 0 0-13.01 0 9.193 9.193 0 0 0 0 13.006 9.202 9.202 0 0 0 13.01 0Z",clipRule:"evenodd"}),(0,s.jsx)("path",{fill:"currentColor",d:"M69.636 49.346V5.966h8.599v18.28l-1.032-1.375c.726-1.872 1.892-3.247 3.497-4.126 1.643-.917 3.554-1.375 5.733-1.375 2.37 0 4.433.496 6.191 1.49a10.498 10.498 0 0 1 4.185 4.183c.994 1.758 1.49 3.82 1.49 6.19v20.113H89.7v-18.28c0-1.223-.248-2.273-.745-3.152a4.968 4.968 0 0 0-2.006-2.063c-.841-.497-1.835-.745-2.981-.745-1.109 0-2.102.248-2.981.745a5.353 5.353 0 0 0-2.064 2.063c-.459.879-.688 1.93-.688 3.152v18.28h-8.6ZM112.496 50.034c-2.255 0-4.204-.363-5.848-1.089-1.643-.726-2.904-1.757-3.783-3.094-.879-1.376-1.319-3-1.319-4.871 0-1.758.401-3.305 1.204-4.642.802-1.375 2.025-2.521 3.669-3.438 1.681-.917 3.764-1.567 6.248-1.949l9.574-1.547v6.304l-8.026 1.432c-1.223.23-2.159.63-2.809 1.204-.649.535-.974 1.318-.974 2.35 0 .954.363 1.7 1.089 2.234.726.535 1.624.802 2.694.802 1.414 0 2.657-.305 3.727-.916 1.07-.612 1.891-1.433 2.465-2.465a6.927 6.927 0 0 0 .917-3.495v-8.138c0-1.184-.478-2.177-1.433-2.98-.917-.802-2.179-1.203-3.784-1.203-1.529 0-2.885.42-4.07 1.26-1.147.841-1.987 1.95-2.523 3.325l-6.879-3.267a11.175 11.175 0 0 1 2.924-4.527c1.338-1.26 2.943-2.235 4.815-2.923 1.873-.687 3.918-1.031 6.134-1.031 2.637 0 4.969.477 6.994 1.432 2.026.956 3.593 2.293 4.701 4.012 1.147 1.68 1.72 3.648 1.72 5.902v20.63h-8.026v-5.042l1.949-.344c-.917 1.375-1.93 2.521-3.038 3.438a11.21 11.21 0 0 1-3.726 1.948c-1.376.459-2.905.688-4.586.688ZM147.351 50.034c-3.44 0-6.44-.802-9-2.407-2.523-1.643-4.243-3.84-5.16-6.59l6.306-2.98c.803 1.681 1.892 3 3.268 3.954a7.86 7.86 0 0 0 4.586 1.433c1.223 0 2.159-.248 2.809-.745.65-.497.975-1.184.975-2.063 0-.459-.115-.84-.344-1.146-.23-.344-.574-.65-1.032-.917-.459-.267-1.032-.497-1.72-.688l-5.332-1.49c-2.56-.726-4.528-1.89-5.904-3.495-1.376-1.643-2.064-3.572-2.064-5.788 0-1.949.497-3.649 1.49-5.1.994-1.452 2.389-2.58 4.185-3.381 1.797-.84 3.86-1.261 6.192-1.261 3.057 0 5.732.726 8.026 2.177 2.331 1.414 3.974 3.42 4.93 6.017l-6.364 2.98c-.458-1.299-1.299-2.33-2.522-3.094-1.185-.802-2.542-1.203-4.07-1.203-1.109 0-1.988.229-2.637.687-.612.459-.918 1.089-.918 1.891 0 .42.115.803.344 1.146.23.344.593.65 1.09.917.535.268 1.184.516 1.949.745l4.987 1.49c2.599.764 4.586 1.93 5.962 3.496 1.376 1.528 2.064 3.42 2.064 5.673 0 1.948-.516 3.649-1.548 5.1-.993 1.452-2.388 2.598-4.185 3.439-1.796.802-3.917 1.203-6.363 1.203ZM163.44 49.346V5.966h8.599v18.28l-1.032-1.375c.726-1.872 1.892-3.247 3.497-4.126 1.643-.917 3.554-1.375 5.733-1.375 2.369 0 4.433.496 6.191 1.49a10.501 10.501 0 0 1 4.185 4.183c.994 1.758 1.49 3.82 1.49 6.19v20.113h-8.599v-18.28c0-1.223-.248-2.273-.745-3.152a4.97 4.97 0 0 0-2.006-2.063c-.841-.497-1.835-.745-2.981-.745-1.109 0-2.102.248-2.981.745a5.355 5.355 0 0 0-2.064 2.063c-.459.879-.688 1.93-.688 3.152v18.28h-8.599ZM196.611 49.346V18.058h8.026v6.189l-.459-1.376c.727-1.872 1.892-3.247 3.497-4.126 1.644-.917 3.555-1.375 5.733-1.375 2.37 0 4.433.496 6.191 1.49a10.489 10.489 0 0 1 4.185 4.183c.994 1.758 1.491 3.82 1.491 6.19v20.113h-8.599v-18.28c0-1.223-.249-2.273-.745-3.152a4.972 4.972 0 0 0-2.007-2.063c-.841-.497-1.834-.745-2.981-.745-1.108 0-2.102.248-2.981.745a5.355 5.355 0 0 0-2.064 2.063c-.458.879
1-.688 1.93-.688 3.152v18.28h-8.599ZM245.318 50.034c-3.095 0-5.923-.707-8.484-2.12a16.665 16.665 0 0 1-6.077-5.788c-1.49-2.483-2.236-5.291-2.236-8.424 0-3.171.746-5.979 2.236-8.424a16.666 16.666 0 0 1 6.077-5.788c2.561-1.413 5.389-2.12 8.484-2.12 3.096 0 5.905.707 8.428 2.12 2.522 1.414 4.528 3.343 6.019 5.788 1.529 2.445 2.293 5.253 2.293 8.424 0 3.133-.764 5.94-2.293 8.424-1.491 2.445-3.497 4.374-6.019 5.788-2.523 1.413-5.332 2.12-8.428 2.12Zm0-7.736c1.567 0 2.924-.363 4.071-1.089 1.184-.726 2.102-1.738 2.751-3.037.688-1.3 1.032-2.79 1.032-4.47 0-1.681-.344-3.152-1.032-4.413-.649-1.299-1.567-2.31-2.751-3.037-1.147-.764-2.504-1.146-4.071-1.146-1.567 0-2.942.382-4.127 1.146-1.185.726-2.121 1.739-2.809 3.037-.65 1.261-.975 2.732-.975 4.413 0 1.68.325 3.17.975 4.47.688 1.299 1.624 2.311 2.809 3.037s2.56 1.089 4.127 1.089ZM280.71 50.034c-3.057 0-5.79-.726-8.197-2.178-2.408-1.451-4.319-3.419-5.733-5.902-1.376-2.483-2.064-5.234-2.064-8.252 0-3.056.707-5.807 2.121-8.252 1.414-2.483 3.325-4.45 5.733-5.903 2.408-1.451 5.102-2.177 8.083-2.177 2.293 0 4.319.44 6.077 1.318 1.796.84 3.21 2.044 4.242 3.61l-1.319 1.72V5.965h8.6v43.38h-8.026v-5.73l.802 1.776c-1.07 1.528-2.522 2.694-4.357 3.496-1.834.764-3.821 1.146-5.962 1.146Zm1.032-7.736c1.567 0 2.943-.363 4.128-1.089s2.102-1.738 2.752-3.037c.687-1.3 1.031-2.79 1.031-4.47 0-1.681-.344-3.171-1.031-4.47-.65-1.299-1.567-2.311-2.752-3.037-1.185-.726-2.561-1.089-4.128-1.089-1.567 0-2.981.382-4.242 1.146-1.223.726-2.178 1.739-2.866 3.037-.688 1.261-1.032 2.732-1.032 4.413 0 1.68.344 3.17 1.032 4.47.688 1.299 1.643 2.311 2.866 3.037 1.261.726 2.675 1.089 4.242 1.089ZM318.481 50.034c-3.325 0-6.211-.726-8.657-2.178-2.446-1.49-4.338-3.476-5.675-5.96-1.338-2.483-2.007-5.233-2.007-8.251 0-3.133.688-5.922 2.064-8.367 1.414-2.445 3.306-4.374 5.676-5.788 2.369-1.413 5.044-2.12 8.025-2.12 2.485 0 4.682.401 6.593 1.203 1.911.764 3.516 1.853 4.815 3.267a14.223 14.223 0 0 1 3.039 4.928c.688 1.834 1.032 3.84 1.032 6.017 0 .611-.039 1.223-.115 1.834-.038.573-.134 1.07-.287 1.49h-23.446v-6.304h18.574l-4.071 2.98c.383-1.643.363-3.094-.057-4.355-.42-1.3-1.166-2.311-2.236-3.037-1.032-.765-2.312-1.146-3.841-1.146-1.49 0-2.771.362-3.841 1.088-1.07.726-1.872 1.796-2.407 3.21-.535 1.413-.746 3.132-.631 5.157-.153 1.757.057 3.305.631 4.642.573 1.337 1.452 2.387 2.637 3.151 1.184.726 2.618 1.09 4.299 1.09 1.529 0 2.828-.306 3.898-.918a6.544 6.544 0 0 0 2.58-2.521l6.88 3.266c-.612 1.529-1.587 2.866-2.924 4.012-1.3 1.146-2.847 2.044-4.644 2.693-1.796.611-3.764.917-5.904.917Z"})]}),{height:18})},{name:"Dropee",slug:"dropee",icon:(0,s.jsx)(G.LogoDropee,{height:30,className:"translate-y-[-2px]"}),quote:(0,s.jsx)(s.Fragment,{children:"Since day one we haven't had to worry about traffic peaks. The interface is a pleasure to use and support has been amazing, especially when we hit limits."})}];var eI=e.i(24573),eB=e.i(15556),ez=e.i(41348),eD=e.i(65759),eF=e.i(36926),eq=e.i(48785),eU=e.i(28189);function eK({activeProduct:e,setActiveProduct:t}){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(eW,{active:e===eU.Product.REDIS,onClick:()=>{t(eU.Product.REDIS)},className:(0,o.default)("whitespace-nowrap",e===eU.Product.REDIS&&"text-red-600"),children:[(0,s.jsx)(ez.default,{className:(0,o.default)("hidden w-5 shrink-0 lg:block md:w-6",e===eU.Product.REDIS&&"block")}),(0,s.jsxs)("span",{children:["Redis"," ",(0,s.jsx)("span",{className:"hidden text-[.9em] opacity-40 sm:inline-flex",children:"®*"})]})]}),(0,s.jsxs)(eW,{active:e===eU.Product.QSTASH,onClick:()=>{t(eU.Product.QSTASH)},className:(0,o.default)(e===eU.Product.QSTASH&&"text-blue-600"),children:[(0,s.jsx)(eB.default,{className:(0,o.default)("hidden w-5 shrink-0 lg:block md:w-6",e===eU.Product.QSTASH&&"block")}),(0,s.jsx)("span",{children:"QStash"})]}),(0,s.jsxs)(eW,{active:e===eU.Product.WORKFLOW,onClick:()=>{t(eU.Product.WORKFLOW)},className:(0,o.default)(e===eU.Product.WORKFLOW&&"text-purple-600"),children:[(0,s.jsx)(eq.default,{className:(0,o.default)("hidden w-5 shrink-0 lg:block md:w-6",e===eU.Product.WORKFLOW&&"block")}),(0,s.jsx)("span",{children:"Workflow"})]}),(0,s.jsxs)(eW,{active:e===eU.Product.VECTOR,onClick:()=>{t(eU.Product.VECTOR)},className:(0,o.default)(e===eU.Product.VECTOR&&"text-orange-600"),children:[(0,s.jsx)(eF.default,{className:(0,o.default)("hidden w-5 shrink-0 lg:block md:w-6",e===eU.Product.VECTOR&&"block")}),(0,s.jsx)("span",{children:"Vector"})]}),(0,s.jsxs)(eW,{active:e===eU.Product.BOX,onClick:()=>{t(eU.Product.BOX)},className:(0,o.default)(e===eU.Product.BOX&&"text-emerald-500"),children:[(0,s.jsx)(eD.default,{className:(0,o.default)("hidden w-5 shrink-0 lg:block md:w-6",e===eU.Product.BOX&&"block")}),(0,s.jsx)("span",{children:"Box"})]}),(0,s.jsxs)(eW,{active:e===eU.Product.BLOB,onClick:()=>{t(eU.Product.BLOB)},className:(0,o.default)(e===eU.Product.BLOB&&"text-sky-500"),children:[(0,s.jsx)(eI.default,{className:(0,o.default)("hidden w-5 shrink-0 lg:block md:w-6",e===eU.Product.BLOB&&"block")}),(0,s.jsx)("span",{children:"Blob"})]})]})}function eW({children:e,active:t,className:r,...n}){return(0,s.jsx)("button",{type:"button",className:(0,o.default)("flex grow items-center justify-center text-center sm:grow-0","h-12 sm:px-4 lg:h-16 xl:px-8","min-[520px]:text-[1.2em] font-display text-[1em] font-semibold leading-none text-text-mute lg:text-xl xl:text-2xl","rounded-2xl rounded-b-none border-2 border-b-0 border-bg-mute bg-bg dark:border-0 dark:bg-bg-mute",t&&"border-white bg-white lg:h-20 dark:bg-white/10",r),...n,children:(0,s.jsx)("span",{className:(0,o.default)("flex items-center justify-center gap-2"),children:e})})}var eQ=e.i(97750),eY=(0,eQ.default)("outline","circle-number-1","IconCircleNumber1",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M10 10l2 -2v8",key:"svg-1"}]]),e$=(0,eQ.default)("outline","circle-number-2","IconCircleNumber2",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M10 8h3a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 0 -1 1v2a1 1 0 0 0 1 1h3",key:"svg-1"}]]),eG=(0,eQ.default)("outline","circle-number-3","IconCircleNumber3",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M10 9a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1",key:"svg-1"}]]);let eX=[eY,e$,eG];function eJ({groups:e}){return(0,s.jsx)(s.Fragment,{children:e.map((e,t)=>(0,s.jsxs)(e1,{children:[(0,s.jsx)(e2,{children:e.title.map((e,t)=>0===t?(0,s.jsxs)(B.default.Fragment,{children:[e," "]},t):(0,s.jsxs)(B.default.Fragment,{children:[(0,s.jsx)("br",{className:"hidden sm:block"})," ",e]},t))}),(0,s.jsx)(e3,{children:e.bullets.map((e,t)=>{let r=eX[t]??eG;return(0,s.jsxs)(e4,{children:[(0,s.jsx)(e0,{children:(0,s.jsx)(r,{stroke:1.5})}),e]},t)})})]},t))})}function e1({className:e,...t}){return(0,s.jsx)("article",{className:(0,o.default)("flex flex-col gap-4 roun
1ded-2xl p-6 text-left sm:h-full sm:p-8","bg-bg-mute dark:bg-bg",e),...t})}function e2({className:e,...t}){return(0,s.jsx)("h3",{className:(0,o.default)("font-display text-lg font-semibold leading-tight sm:text-2xl",e),...t})}function e3({className:e,...t}){return(0,s.jsx)("ul",{className:(0,o.default)("",e),...t})}function e4({className:e,...t}){return(0,s.jsx)("li",{className:(0,o.default)("flex items-start gap-2 py-px sm:py-1",e),...t})}function e0({className:e,...t}){return(0,s.jsx)("span",{className:(0,o.default)("shrink-0 text-primary",e),...t})}let e6={[eU.Product.REDIS]:{title:"Serverless Redis in the cloud with low latency and durable storage",docsLink:"https://upstash.com/docs/redis",consoleLink:"https://console.upstash.com/redis"},[eU.Product.VECTOR]:{title:"Serverless Vector database for high-performance search at scale",docsLink:"https://upstash.com/docs/vector",consoleLink:"https://console.upstash.com/vector"},[eU.Product.QSTASH]:{title:"Serverless messaging and scheduling via HTTP",docsLink:"https://upstash.com/docs/qstash",consoleLink:"https://console.upstash.com/qstash"},[eU.Product.WORKFLOW]:{title:"Durable, reliable and performant serverless functions",docsLink:"https://upstash.com/docs/workflow",consoleLink:"https://console.upstash.com/workflow"},[eU.Product.SEARCH]:{title:"Serverless AI search at scale",docsLink:"https://upstash.com/docs/search",consoleLink:"https://console.upstash.com/search"},[eU.Product.BOX]:{title:"Secure cloud containers for AI agents",docsLink:"https://upstash.com/docs/box",consoleLink:"https://console.upstash.com/box"},[eU.Product.BLOB]:{title:"Serverless file storage for web developers",docsLink:"https://upstash.com/docs/blob/overall/quickstart",consoleLink:"https://console.upstash.com/blob"}},e5={[eU.Product.REDIS]:[{title:["Highly Available,","Infinitely Scalable"],bullets:["99.99% uptime guarantee","Automatic scaling to meet your demands","No server management required"]},{title:["Global","Low Latency"],bullets:["Lightning-fast response times worldwide","Multi-region replication options","Optimize for your users, wherever they are"]},{title:["Persistent Redis,","In-Memory Speed"],bullets:["In-memory speed with disk-like persistence","Data safety without sacrificing performance","Automatic backups"]}],[eU.Product.VECTOR]:[{title:["Massive","Scalability"],bullets:["Handle hundreds of millions of vectors","Seamless scaling as your data grows","Maintain performance at any scale"]},{title:["Disk-Based","Algorithm for Efficiency"],bullets:["Optimize storage and performance","Cost-effective solution for large datasets","Balance between speed and resource usage"]},{title:["Powerful Metadata","Store with SQL Support"],bullets:["Rich querying capabilities with familiar SQL syntax","Easily combine vector similarity search with metadata filtering","Flexible data organization and retrieval"]}],[eU.Product.QSTASH]:[{title:["Serverless","Messaging"],bullets:["Effortless communication between serverless functions","Decouple your microservices architecture","Scale your messaging infrastructure without limits"]},{title:["Scheduled Tasks","with CRON"],bullets:["Easily set up recurring tasks and jobs","Flexible scheduling with CRON syntax","Automate your workflows with precision"]},{title:["Intelligent","Retry Mechanism"],bullets:["Automatically retry failed tasks","Ensure task completion in unreliable environments","Configurable retry policies to suit your needs"]}],[eU.Product.WORKFLOW]:[{title:["Serverless","Function Orchestration"],bullets:["Coordinate complex serverless workflows","Integrate and manage multiple functions with ease","Streamline your serverless architecture"]},{title:["Eliminate","Function Timeouts"],bullets:["Execute long-running processes without constraints","No more arbitrary time limits on your operations","Focus on your logic, not on timing workarounds"]},{title:["Automatic","Error Recovery"],bullets:["Built-in resilience for your workflows","Automatically retry failed steps","Ensure robust execution even in unpredictable environments"]}],[eU.Product.BOX]:[{title:["Built for AI Agents"],bullets:["Secure, isolated cloud containers","Built-in Claude Code and Codex agents","Full shell, filesystem, and git access"]},{title:["Durable & Persistent"],bullets:["Infinite lifespan with auto freeze/resume","Persistent storage across sessions","Usage-based pricing, pay only when active"]},{title:["Scales Seamlessly"],bullets:["Serverless, no infrastru
1cture to manage","Scale to hundreds of boxes instantly","Multi-agent orchestration support"]}],[eU.Product.BLOB]:[{title:["Global CDN,","No Regions"],bullets:["Every file replicated to a CDN worldwide","Public buckets get a URL out of the box","One rate sheet, no cross-region fees"]},{title:["Direct Browser","Uploads"],bullets:["Bytes go straight to storage, never through your server","Multipart uploads with pause, resume and retry","Fully typesafe SDK and React hooks"]},{title:["S3 Compatible,","Simple Billing"],bullets:["Works with the AWS SDK and any S3 tool","Public or private buckets with signed URLs","1 TB of free egress a month on pay as you go"]}]};var e7=e.i(53967);let e8=()=>(0,s.jsx)(e7.CodeSnippets,{data:e9}),e9=[{title:"Scheduling",snippets:[{language:"js",code:`
2import { Client } from "@upstash/qstash";
3
4const client = new Client({ token: "<QSTASH_TOKEN>" });
5
6await client.schedules.create({
7  destination: "https://example.com",
8  cron: "* * * * *",
9});
10        `},{language:"py",code:`
11from qstash import QStash
12
13client = QStash("<QSTASH_TOKEN>")
14
15client.schedule.create(
16    destination="https://example.com",
17    cron="* * * * *",
18)
19        `}]},{title:"Auto retries",snippets:[{language:"js",code:`
20import { Client } from "@upstash/qstash";
21
22const client = new Client({ token: "<QSTASH_TOKEN>" });
23
24const res = await client.publishJSON({
25  url: "https://my-api...",
26  body: { hello: "world" },
27  retries: 2,
28});
29        `},{language:"py",code:`
30from qstash import QStash
31
32client = QStash("<QSTASH_TOKEN>")
33
34client.message.publish_json(
35    url="https://my-api...",
36    body={"hello": "world"},
37    retries=2,
38)
39        `}]},{title:"Queues",snippets:[{language:"js",code:`
40import { Client } from "@upstash/qstash";
41
42const client = new Client({ token: "<QSTASH_TOKEN>" });
43
44const queue = client.queue({
45  queueName: "my-queue"
46})
47
48await queue.enqueueJSON({
49  url: "https://example.com",
50  body: {
51    "Hello": "World"
52  }
53})
54        `},{language:"py",code:`
55from qstash import QStash
56
57client = QStash("<QSTASH_TOKEN>")
58
59queue_name = "my-queue"
60client.queue.upsert(queue_name)
61
62client.message.enqueue_json(
63    queue=queue_name,
64    url="https://example.com",
65    body={"Hello": "World"}
66)
67        `}]},{title:"Callbacks",snippets:[{language:"js",code:`
68import { Client } from "@upstash/qstash";
69
70const client = new Client({ token: "<QSTASH_TOKEN>" });
71
72const res = await client.publishJSON({
73  url: "https://my-api...",
74  body: { hello: "world" },
75  callback: "https://my-callback...",
76});
77        `},{language:"py",code:`
78from qstash import QStash
79
80client = QStash("<QSTASH_TOKEN>")
81
82client.message.publish_json(
83    url="https://my-api...",
84    body={"hello": "world"},
85    callback="https://my-callback...",
86)
87        `}]}];function te(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(eJ,{groups:e5[eU.Product.QSTASH]}),(0,s.jsx)(e8,{})]})}let tt=()=>(0,s.jsx)(e7.CodeSnippets,{data:ts}),ts=[{title:"Caching",snippets:[{language:"js",code:`
88import { Redis } from "@upstash/redis";
89
90const redis = Redis.fromEnv();
91
92const item = await redis.get("item:123");
93
94if (item) {
95  return item;
96}
97`},{language:"py",code:`
98from upstash_redis import Redis
99
100redis = Redis.from_env()
101
102item = redis.get("item:123")
103if item:
104    return item
105`}]},{title:"Session Management",snippets:[{language:"js",code:`
106import { Redis } from "@upstash/redis";
107
108const redis = Redis.fromEnv();
109
110const getSession = async (key: string) => {
111  const sessionId = await getSessionId();
112  return redis.hget(\`s:\${sessionId}\`, key);
113};
114
115const setSession = async (key: string, value: string) => {
116  const sessionId = await getSessionIdAndCreateIfMissing();
117  const sessionKey = \`s:\${sessionId}\`;
118  await redis.hset(sessionKey, { [key]: value });
119  await redis.expire(sessionKey, 900);
120  return sessionId;
121};
122`},{language:"py",code:`
123from upstash_redis import Redis
124
125redis = Redis.from_env()
126
127def get_session(key: str) -> str:
128    session_id = get_session_id()
129    return redis.hget(f"s:{session_id}", key)
130
131def set_session(key: str, value: str) -> str:
132    session_id = get_session_id_and_create_if_missing()
133    redis.hset(f"s:{session_id}", key, value)
134    return session_id
135`}]},{title:"Rate Limiting",snippets:[{language:"js",code:`
136import { Redis } from "@upstash/redis";
137import { Ratelimit } from "@upstash/ratelimit";
138
139const ratelimit = new Ratelimit({
140  redis: Redis.fromEnv(),
141  limiter: Ratelimit.slidingWindow(10, "10 s"),
142});
143
144const identifier = getIpAddress();
145const { success } = await ratelimit.limit(identifier);
146
147if (!success) {
148  return res.status(429).json({ "error": "Too many requests" });
149}
150`},{language:"py",code:`
151from upstash_redis import Redis
152from upstash_ratelimit import Ratelimit, SlidingWindow
153
154redis = Redis.from_env()
155
156ratelimit = Ratelimit(
157    redis=redis,
158    limiter=SlidingWindow(max_requests=10, window=10)
159)
160
161identifier = get_ip_address()
162result = ratelimit.limit(identifier)
163
164if not result.allowed:
165    return Response(status_code=429)
166`}]},{title:"Leaderboards",snippets:[{language:"js",code:`
167import { Redis } from "@upstash/redis";
168
169const redis = Redis.fromEnv();
170
171const LEADERBOARD_KEY = "game-leaderboard";
172
173export const updateScore = async (playerName: string, score: number) =>
174  await redis.zadd(LEADERBOARD_KEY, { score, member: playerName });
175
176export const getTopPlayers = async (top: number) => {
177  return await redis.zrange(LEADERBOARD_KEY, 0, top - 1, { rev: true, withScores: true });
178};
179`},{language:"py",code:`
180from upstash_redis import Redis
181
182redis = Redis.from_env()
183
184leaderboard_key = "game-leaderboard"
185
186def update_score(player_name: str, score: int) -> None:
187    redis.zadd(leaderboard_key, {player_name: score})
188
189def get_top_players(top: int):
190    return redis.zrange(leaderboard_key, 0, top - 1, withscores=True)
191`}]},{title:"Chat",snippets:[{language:"js",code:`
192import { Redis } from "@upstash/redis";
193
194const redis = Redis.fromEnv();
195
196const getChatHistoryKey = (userId: string) => \`chat-history:\${userId}\`;
197
198export const saveMessage = async (userId: string, message: string) => {
199  await redis.lpush(getChatHistoryKey(userId), message); // Add message to history
200  await redis.ltrim(getChatHistoryKey(userId), 0, 99); // Keep only the latest 100 messages
201};
202
203export const getChatHistory = async (userId: string) =>
204  await redis.lrange(getChatHistoryKey(userId), 0, -1);
205`},{language:"py",code:`
206from upstash_redis import Redis
207
208redis = Redis.from_env()
209
210def save_message(user_id: str, message: str) -> None:
211    key = f"chat:{user_id}"
212    redis.lpush(key, message)
213    redis.ltrim(key, 0, 99)
214
215def get_chat_history(user_id: str) -> list[str]:
216    return redis.lrange(f"chat:{user_id}", 0, -1)
217`}]}];function tr(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(eJ,{groups:e5[eU.Product.REDIS]}),(0,s.jsx)(tt,{})]})}let tn=()=>(0,s.jsx)(e7.CodeSnippets,{data:ta}),ta=[{title:"RAG",snippets:[{language:"js",code:`
218import { Index } from "@upstash/vector";
219
220const index = new Index()
221
222const question = "What is Quantum Mechanics?"
223
224// Find related documents
225const context = await index.query({
226  data: question,
227  topK: 5,
228  includeMetadata: true,
229});
230
231const prompt = \`Question: \${question} - Context: \${JSON.stringify(context)}\`;
232
233const response = await openai.chat.completions.create({
234  model: "gpt-5.4",
235  messages: [
236    { 
237      role: "system", 
238      content: "You are a helpful assistant, answer the question using the context." 
239    },
240    { 
241      role: "user", 
242      content: prompt 
243    },
244  ],
245});
246        `},{language:"py",code:`
247from upstash_vector import Index
248
249index = Index.from_env()
250
251question = "What is Quantum Mechanics?" 
252
253# Find related documents
254context = index.query(
255    data=question,
256    top_k=5,
257    include_metadata=True
258)
259
260prompt = f"Question: {question} - Context: {str(context)}"
261
262response = openai.chat.completions.create(
263    model="gpt-5.4",
264    messages=[
265        {
266            "role": "system",
267            "content": "You are a helpful assistant, answer the question using the context."
268        },
269        {
270            "role": "user", 
271            "content": prompt
272        }
273    ]
274)
275        `}]},{title:"Semantic Caching",snippets:[{language:"js",code:`
276import { SemanticCache } from "@upstash/semantic-cache";
277import { Index } from "@upstash/vector";
278
279const semanticCache = new SemanticCache({ index: new Index(), minProximity: 0.95 });
280
281await semanticCache.set("Capital of Turkey", "Ankara");
282await semanticCache.set("year in which the Berlin wall fell", "1989");
283
284// Outputs: "Ankara"
285const result1 = await semanticCache.get("What is Turkey's capital?");
286
287// Outputs: "1989"
288const result2 = await semanticCache.get("what's the year the Berlin wall destroyed?");
289        `},{language:"py",code:`
290from upstash_vector import SemanticCache
291
292cache = SemanticCache(
293    url="<UPSTASH_VECTOR_REST_URL>",
294    token="<UPSTASH_VECTOR_REST_TOKEN>",
295    min_proximity=0.9,
296)
297
298cache.set("Capital of Turkey", "Ankara")
299cache.set("year in which the Berlin wall fell", "1989")
300
301# Outputs: "Ankara"
302result1 = cache.get("What is Turkey's capital?")
303
304# Outputs: "1989"
305result2 = cache.get("what's the year the Berlin wall destroyed?")
306        `}]},{title:"Search",snippets:[{language:"js",code:`
307import { Index } from "@upstash/vector";
308
309const index = new Index()
310
311const documents = [
312  { id: "doc1", data: "Upstash Vector is a scalable vector database." },
313  { id: "doc2", data: "LangChain is a framework for building intelligent apps." },
314];
315
316await index.upsert(documents);
317
318// Perform a similarity search
319const query = "What is LangChain?";
320const results = await index.query({ data: query, topK: 3 });
321        `},{language:"py",code:`
322from upstash_vector import Index
323
324index = Index.from_env()
325
326documents = [
327    {"id": "doc1", "data": "Upstash Vector is a scalable vector database."},
328    {"id": "doc2", "data": "LangChain is a framework for building intelligent apps."}
329]
330
331index.upsert(documents)
332
333# Perform a similarity search
334query = "What is LangChain?"
335results = index.query(data=query, top_k=3)
336        `}]}];function to(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(eJ,{groups:e5[eU.Product.VECTOR]}),(0,s.jsx)(tn,{})]})}let ti=()=>(0,s.jsx)(e7.CodeSnippets,{data:tl}),tl=[{title:"AI Data Processing",snippets:[{language:"js",code:`
337// Step 1: Get the dataset URL
338const datasetUrl = await context.run("get-dataset-url", async () => {
339  return await getDatasetUrl(datasetId)
340});
341
342// Step 2: Download the dataset
343const { body: dataset } = await context.call("download-dataset", {
344  url: datasetUrl,
345  method: "GET"
346});
347
348// Step 3: Analyze the dataset with LLM
349const response = await context.api.openai.call(
350  "call-openai",
351  {
352    token: "OPENAI_API_KEY",
353    operation: "chat.completions.create",
354    body: {
355      model: "gpt-5.4",
356      messages: [
357        { role: "user", content: \`Analyze this data chunk: \${JSON.stringify(dataset)}\` },
358      ],
359    },
360  }
361);
362        `},{language:"py",code:`
363# Step 1: Get the dataset URL
364async def _get_url():
365    return await get_dataset_url(dataset_id)
366
367dataset_url = await context.run("get-dataset-url", _get_url)
368
369# Step 2: Download the dataset
370response = await context.call("download-dataset", url=dataset_url, method="GET")
371dataset = response.body
372
373# Step 3: Analyze the dataset with LLM
374response = await context.call(
375    "call-openai",
376    url="https://api.openai.com/v1/chat/completions",
377    method="POST",
378    headers={"authorization": f"Bearer {os.getenv('OPENAI_API_KEY')}"},
379    body={
380        "model": "gpt-5.4",
381        "messages": [
382            {
383                "role": "user",
384                "content": f"Analyze this data chunk: {json.dumps(dataset)}",
385            }
386        ],
387    },
388)
389        `}]},{title:"Event Based Workflows",snippets:[{language:"js",code:`
390// Step 1: Request order processing
391await context.run("request-order-processing", async () => {
392  await requestProcessing(orderId);
393});
394
395// Step 2: Wait for the order to be processed
396const { eventData, timeout } = await context.waitForEvent(
397  "wait-for-order-processing",
398  \`order-\${orderId}\`,
399  {
400    timeout: "10m" // 10 minutes timeout
401  }
402);
403
404// Step 3: Log the processed order
405await context.run("process-order", async () => {
406  console.log(\`Order \${orderId} processed:\`, eventData);
407});
408        `}]},{title:"Parallel Runs",snippets:[{language:"js",code:`
409const [coffeeBeansAvailable, cupsAvailable, milkAvailable] =
410  await Promise.all([
411    context.run("check-coffee-beans", () => checkInventory("coffee-beans")),
412    context.run("check-cups", () => checkInventory("cups")),
413    context.run("check-milk", () => checkInventory("milk")),
414  ]);
415
416// If all ingredients available, brew coffee
417if (coffeeBeansAvailable && cupsAvailable && milkAvailable) {
418  const price = await context.run("brew-coffee", async () => {
419    return await brewCoffee({ style: "cappuccino" });
420  });
421
422  await printReceipt(price);
423};
424        `}]},{title:"Customer Onboarding",snippets:[{language:"js",code:`
425await context.run("new-signup", async () => {
426  await sendEmail("Welcome to the platform", email);
427});
428
429await context.sleep("wait-for-3-days", "3d");
430
431while (true) {
432  const state = await context.run("check-user-state", async () => {
433    return await getUserState();
434  });
435
436  if (state === "non-active") {
437    await context.run("send-email-non-active", async () => {
438      await sendEmail("Email to non-active users", email);
439    });
440  };
441
442  await context.sleep("wait-for-1-month", "30d");
443};
444        `},{language:"py",code:`
445async def _send_welcome():
446    await send_email("Welcome to the platform", email)
447
448await context.run("new-signup", _send_welcome)
449
450await context.sleep("wait-for-3-days", "3d")
451
452while True:
453    async def _check_state():
454        return await get_user_state()
455    
456    state = await context.run("check-user-state", _check_state)
457
458    if state == "non-active":
459        async def _send_reminder():
460            await send_email("Email to non-active users", email)
461        
462        await context.run("send-email-non-active", _send_reminder)
463
464    await context.sleep("wait-for-1-month", "30d")
465        `}]}];function tc(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(eJ,{groups:e5[eU.Product.WORKFLOW]}),(0,s.jsx)(ti,{})]})}var td=(0,eQ.default)("outline","notes","IconNotes",[["path",{d:"M5 3m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M9 7l6 0",key:"svg-1"}],["path",{d:"M9 11l6 0",key:"svg-2"}],["path",{d:"M9 15l4 0",key:"svg-3"}]]),tu=e.i(71350),th=e.i(94432);function tp(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(eJ,{groups:e5[eU.Product.BLOB]}),(0,s.jsx)(th.CodeSnippetsBlob,{})]})}e.i(54807);let tm=()=>(0,s.jsx)(e7.CodeSnippets,{data:tx,codeBodyClassName:"h-[420px]"}),tx=[{title:"Run an agent",snippets:[{language:"js",code:`
466import { Box, Agent } from "@upstash/box"
467
468const box = await Box.create({
469  runtime: "node",
470  agent: {
471    harness: Agent.ClaudeCode,
472    model: "anthropic/claude-opus-4-6",
473    apiKey: process.env.ANTHROPIC_API_KEY,
474  },
475})
476
477const run = await box.agent.run({
478  prompt: "Set up a Next.js project with Tailwind",
479})
480
481console.log(run.result)
482`},{language:"py",code:`
483import os
484from upstash_box import Box, Agent
485
486box = Box.create(
487    runtime="node",
488    agent={
489        "harness": Agent.CLAUDE_CODE,
490        "model": "anthropic/claude-opus-4-6",
491        "api_key": os.environ["ANTHROPIC_API_KEY"],
492    },
493)
494
495run = box.agent.run(
496    prompt="Set up a Next.js project with Tailwind",
497)
498
499print(run.result)
500`}]},{title:"Open a PR",snippets:[{language:"js",code:`
501import { Box, Agent } from "@upstash/box"
502
503const box = await Box.create({
504  runtime: "node",
505  agent: {
506    harness: Agent.ClaudeCode,
507    model: "anthropic/claude-opus-4-6",
508    apiKey: process.env.ANTHROPIC_API_KEY,
509  },
510  git: { token: process.env.GITHUB_TOKEN },
511})
512
513await box.git.clone({
514  repo: "https://github.com/acme/web-app",
515  branch: "main",
516})
517
518await box.agent.run({
519  prompt: "Fix the broken tests, commit and open a PR.",
520})
521`},{language:"py",code:`
522import os
523from upstash_box import Box, Agent
524
525box = Box.create(
526    runtime="node",
527    agent={
528        "harness": Agent.CLAUDE_CODE,
529        "model": "anthropic/claude-opus-4-6",
530        "api_key": os.environ["ANTHROPIC_API_KEY"],
531    },
532    git={"token": os.environ["GITHUB_TOKEN"]},
533)
534
535box.git.clone(
536    repo="https://github.com/acme/web-app",
537    branch="main",
538)
539
540box.agent.run(
541    prompt="Fix the broken tests, commit and open a PR.",
542)
543`}]},{title:"Upload & analyze a PDF",snippets:[{language:"js",code:`
544import { Box, Agent } from "@upstash/box"
545import { z } from "zod"
546
547const box = await Box.create({
548  runtime: "node",
549  agent: {
550    harness: Agent.ClaudeCode,
551    model: "anthropic/claude-opus-4-6",
552    apiKey: process.env.ANTHROPIC_API_KEY,
553  },
554})
555
556await box.files.upload([
557  { path: "./data/report.pdf", destination: "/work/report.pdf" },
558])
559
560const run = await box.agent.run({
561  prompt: "Read /work/report.pdf and extract key metrics.",
562  responseSchema: z.object({
563    revenue: z.number(),
564    growth: z.number(),
565  }),
566})
567
568console.log(run.result)
569`},{language:"py",code:`
570import os
571from pydantic import BaseModel
572from upstash_box import Box, Agent
573
574class Metrics(BaseModel):
575    revenue: float
576    growth: float
577
578box = Box.create(
579    runtime="node",
580    agent={
581        "harness": Agent.CLAUDE_CODE,
582        "model": "anthropic/claude-opus-4-6",
583        "api_key": os.environ["ANTHROPIC_API_KEY"],
584    },
585)
586
587box.files.upload([
588    {"path": "./data/report.pdf", "destination": "/work/report.pdf"},
589])
590
591run = box.agent.run(
592    prompt="Read /work/report.pdf and extract key metrics.",
593    response_schema=Metrics,
594)
595
596print(run.result)
597`}]},{title:"Expose a port",snippets:[{language:"js",code:`
598import { Box } from "@upstash/box"
599
600const box = await Box.create({ runtime: "node" })
601
602// Start a web server on port 3000
603await box.exec.command("cd /work && npm install express")
604await box.files.write({
605  path: "/work/server.js",
606  content: \`
607    const express = require('express')
608    const app = express()
609    app.get('/', (req, res) => res.send('Hello from Box!'))
610    app.listen(3000)
611  \`,
612})
613await box.exec.command("node /work/server.js &")
614
615// Create a public URL
616const publicUrl = await box.getPublicURL(3000)
617`},{language:"py",code:`
618from upstash_box import Box
619
620box = Box.create(runtime="node")
621
622# Start a web server on port 3000
623box.exec.command("cd /work && npm install express")
624box.files.write(
625    path="/work/server.js",
626    content="""
627    const express = require('express')
628    const app = express()
629    app.get('/', (req, res) => res.send('Hello from Box!'))
630    app.listen(3000)
631  """,
632)
633box.exec.command("node /work/server.js &")
634
635# Create a public URL
636public_url = box.get_public_url(3000)
637`}]}];function tC(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(eJ,{groups:e5[eU.Product.BOX]}),(0,s.jsx)(tm,{})]})}let tf=[eU.Product.VECTOR,eU.Product.QSTASH,eU.Product.WORKFLOW,eU.Product.BOX,eU.Product.BLOB];function tg(){return(0,s.jsxs)("section",{className:"sr-only",children:[(0,s.jsx)("h2",{children:"Upstash Serverless Data Platform — products"}),tf.map(e=>(0,s.jsxs)("article",{children:[(0,s.jsxs)("h3",{children:[e,": ",e6[e].title]}),e5[e].map((e,t)=>(0,s.jsxs)("div",{children:[(0,s.jsx)("h4",{children:e.title.join(" ")}),(0,s.jsx)("ul",{children:e.bullets.map((e,t)=>(0,s.jsx)("li",{children:e},t))})]},t)),(0,s.jsxs)("p",{children:["Learn more in the"," ",(0,s.jsxs)("a",{href:e6[e].docsLink,children:[e," documentation"]}),"."]})]},e))]})}let tw=({activeProduct:e})=>{let{title:t,docsLink:r,consoleLink:n}=e6[e];return(0,s.jsxs)("div",{className:"mb-8 flex flex-col items-center gap-4 py-4",children:[(0,s.jsx)("h2",{className:"text-2xl font-medium text-emerald-800 dark:text-text",children:t}),(0,s.jsxs)("div",{className:"flex flex-col justify-center gap-3 xs:flex-row",children:[e===eU.Product.REDIS&&(0,s.jsx)(eP.default,{href:"/redis",children:(0,s.jsxs)(w.default,{variant:"default",className:"h-[42px] px-5",children:["Explore Redis",(0,s.jsx)(d.IconArrowRight,{size:24})]})}),e===eU.Product.BLOB&&(0,s.jsx)(eP.default,{href:"/blob",children:(0,s.jsxs)(w.default,{variant:"default",className:"h-[42px] px-5",children:["Explore Blob",(0,s.jsx)(d.IconArrowRight,{size:24})]})}),(0,s.jsx)("a",{href:r,target:"_blank",children:(0,s.jsxs)(w.default,{variant:"defaultDark",className:"h-[42px] px-5",children:["Documentation",(0,s.jsx)(td,{size:24})]})}),(0,s.jsx)("a",{href:n,target:"_blank",children:(0,s.jsxs)(w.default,{variant:"primary",className:"h-[42px] px-5",children:[e===eU.Product.REDIS||e===eU.Product.SEARCH?"Create Database":e===eU.Product.VECTOR?"Create Index":e===eU.Product.BOX?"Create Box":e===eU.Product.BLOB?"Create Bucket":"Upstash Console",e===eU.Product.REDIS||e===eU.Product.VECTOR||e===eU.Product.SEARCH||e===eU.Product.BOX||e===eU.Product.BLOB?(0,s.jsx)(tu.IconPlus,{size:24}):(0,s.jsx)(b.IconArrowUpRight,{size:24})]})})]})]})};function tb(){let[e,t]=(0,B.useState)(eU.Product.REDIS);return(0,s.jsxs)("section",{className:"relative z-10 sm:mt-4",children:[(0,s.jsx)(f.default,{section:"products"}),(0,s.jsxs)(n.default,{children:[(0,s.jsx)("div",{className:"md:text-ba flex items-end justify-center md:gap-1 lg:gap-2",children:(0,s.jsx)(eK,{activeProduct:e,setActiveProduct:s=>{s!==e&&(0,P.trackEvent)("home_product_switch",{product:s.toLowerCase()}),t(s)}})}
637),(0,s.jsxs)("div",{"data-area":"home_products","data-product":e.toLowerCase(),className:(0,o.default)("-mx-6 p-6 sm:mx-auto sm:p-8","bg-white shadow sm:rounded-4xl","dark:bg-white/10"),children:[(0,s.jsx)(tw,{activeProduct:e}),(0,s.jsxs)("div",{className:"grid gap-2 sm:grid-cols-3 sm:place-items-center sm:gap-8",children:[e===eU.Product.REDIS&&(0,s.jsx)(tr,{}),e===eU.Product.VECTOR&&(0,s.jsx)(to,{}),e===eU.Product.QSTASH&&(0,s.jsx)(te,{}),e===eU.Product.WORKFLOW&&(0,s.jsx)(tc,{}),e===eU.Product.BOX&&(0,s.jsx)(tC,{}),e===eU.Product.BLOB&&(0,s.jsx)(tp,{})]})]}),(0,s.jsx)(tg,{})]})]})}var tj=e.i(88760),tv=e.i(1039);function ty({children:e,className:t}){return(0,s.jsx)("div",{className:(0,o.default)("group relative z-0 grid gap-6 p-6 md:gap-8 md:p-8","bg-white dark:bg-bg-mute","rounded-3xl shadow-sm hover:shadow-xl md:rounded-4xl",t),children:e})}function tL({children:e,className:t,link:r}){return(0,s.jsxs)("h3",{className:(0,o.default)("flex items-center gap-2 font-display text-xl font-semibold md:text-2xl",t),children:[e,r&&(0,s.jsx)("span",{className:"inline-flex opacity-0 transition group-hover:opacity-100",children:(0,s.jsx)(w.default,{asChild:!0,className:"!p-1",children:(0,s.jsx)("a",{href:r,target:"_blank",children:(0,s.jsx)(b.IconArrowUpRight,{size:24,className:"opacity-100"})})})})]})}function tk({children:e,className:t}){return(0,s.jsx)("p",{className:(0,o.default)("mt-2 text-text-mute md:mt-3",t),children:e})}function tH(){return(0,s.jsxs)(ty,{className:"overflow-hidden md:col-span-2",children:[(0,s.jsxs)("header",{className:"relative z-20",children:[(0,s.jsx)(tL,{link:"/docs/redis/features/globaldatabase",title:"Global database features",children:"Designed for the edge"}),(0,s.jsx)(tk,{children:"Tested and optimized for Vercel Edge, Cloudflare Workers and Fastly Edge."})]}),(0,s.jsx)("div",{className:"relative z-0 h-[320px]",children:(0,s.jsxs)("div",{className:"absolute left-1/2 top-1/2 z-0 flex h-[490px] w-[490px] -translate-x-1/2 -translate-y-1/2 items-center justify-center",children:[(0,s.jsxs)("svg",{className:"absolute left-0 top-0 z-0",width:"490",height:"490",viewBox:"0 0 490 490",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,s.jsx)("circle",{opacity:"0.1",cx:"245",cy:"245",r:"47.5",stroke:"currentColor"}),(0,s.jsx)("circle",{opacity:"0.08",cx:"245",cy:"245",r:"96.5",stroke:"currentColor"}),(0,s.jsx)("circle",{opacity:"0.06",cx:"245",cy:"245",r:"146.5",stroke:"currentColor"}),(0,s.jsx)("circle",{opacity:"0.04",cx:"245",cy:"245",r:"195.5",stroke:"currentColor"}),(0,s.jsx)("circle",{opacity:"0.02",cx:"245",cy:"245",r:"244.5",stroke:"currentColor"})]}),(0,s.jsx)(tj.LogoIcon,{}),(0,s.jsx)(tS,{className:"h-[118px] rotate-[120deg]",children:(0,s.jsx)(tV,{className:"rotate-[-120deg]",children:(0,s.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"35",viewBox:"0 0 35 15",fill:"none",children:[(0,s.jsx)("path",{fill:"#F6821F",d:"m23.567 14.788.17-.587c.202-.698.127-1.343-.213-1.817-.312-.437-.832-.694-1.465-.724l-11.97-.151a.238.238 0 0 1-.189-.1.244.244 0 0 1-.027-.216.318.318 0 0 1 .278-.212l12.082-.153c1.433-.066 2.984-1.228 3.528-2.645l.689-1.8a.436.436 0 0 0 .018-.237A7.867 7.867 0 0 0 18.791 0a7.87 7.87 0 0 0-7.451 5.333A3.543 3.543 0 0 0 5.787 9.04a5.032 5.032 0 0 0-4.832 5.755.234.234 0 0 0 .23.201l22.1.003h.007a.292.292 0 0 0 .275-.212Z"}),(0,s.jsx)("path",{fill:"#FBAD41",d:"M27.554 6.514c-.11 0-.221.003-.331.008a.185.185 0 0 0-.052.012.19.19 0 0 0-.12.127l-.471 1.624c-.203.698-.128 1.343.212 1.817.312.437.832.694 1.464.724l2.552.153a.232.232 0 0 1 .182.099.24.24 0 0 1 .027.217.318.318 0 0 1-.277.212l-2.652.153c-1.44.066-2.99 1.228-3.534 2.645l-.191.5a.141.141 0 0 0 .126.192h9.131a.242.242 0 0 0 .235-.176 6.541 6.541 0 0 0-6.301-8.307Z"})]})})}),(0,s.jsx)(tS,{className:"h-[118px] rotate-[240deg]",children:(0,s.jsx)(tV,{className:"rotate-[-240deg]",children:(0,s.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"35",viewBox:"0 0 35 16",fill:"none",children:[(0,s.jsx)("path",{fill:"#FF282D",d:"M23.227 3.152v8.275h2.486v-1.264h-.822V1.89h-1.664v1.26ZM1.642 10.163h.845V6.17h-.845V5.072l.845-.139V3.822c0-1.347.293-1.93 2.01-1.93.37 0 .81.054 1.195.123L5.464 3.37a3.105 3.105 0 0 0-.555-.05c-.605 0-.758.061-.758.652v.962h1.256V6.17H4.151v3.993h.836v1.264H1.642v-1.264ZM22.38 9.763c-.26.055-.488.048-.652.052-.685.017-.
637626-.208-.626-.854v-2.79h1.304V4.932h-1.304V1.891h-1.665v7.416c0 1.455.36 2.12 1.926 2.12.37 0 .88-.095 1.265-.178l-.247-1.486ZM32.72 10.17a.629.629 0 1 1 0 1.255.627.627 0 1 1 0-1.256Zm0 1.156a.53.53 0 0 0 .528-.529.524.524 0 0 0-.528-.522.522.522 0 0 0-.525.522c0 .29.235.53.525.53Zm.117-.22-.128-.187h-.087v.187h-.142v-.617h.258c.153 0 .248.077.248.213 0 .1-.05.169-.13.192l.155.212h-.174Zm-.215-.31h.113c.064 0 .107-.026.107-.094 0-.064-.043-.09-.104-.09h-.116v.184ZM17.36 6.168v-.222a7.165 7.165 0 0 0-1.275-.093c-.775 0-.87.411-.87.634 0 .315.108.485.947.669 1.227.275 2.459.562 2.459 2.083 0 1.443-.742 2.188-2.305 2.188-1.046 0-2.06-.224-2.835-.42V9.762h1.26v.221c.543.105 1.111.094 1.408.094.826 0 .96-.444.96-.68 0-.328-.237-.485-1.011-.642-1.46-.25-2.617-.748-2.617-2.23 0-1.403.938-1.953 2.5-1.953 1.06 0 1.864.164 2.639.36v1.235h-1.26ZM9.701 7.26l-.126-.126-.644.56a.306.306 0 0 0-.103-.018.319.319 0 0 0-.314.323c0 .179.14.323.314.323A.319.319 0 0 0 9.142 8a.33.33 0 0 0-.014-.097L9.7 7.26Z"}),(0,s.jsx)("path",{fill:"#FF282D",d:"m12.251 9.763-.001-5.18h-1.665v.486a3.403 3.403 0 0 0-1.131-.428h.01v-.575h.202v-.423H7.99v.423h.203v.575h.012a3.422 3.422 0 1 0 2.386 6.296l.3.49h1.758V9.763h-.398ZM8.928 9.76v-.195h-.2v.195a1.761 1.761 0 0 1-1.654-1.665h.198v-.2h-.197a1.76 1.76 0 0 1 1.653-1.65v.195h.2v-.196a1.76 1.76 0 0 1 1.658 1.602v.057h-.2v.2h.2v.054A1.76 1.76 0 0 1 8.928 9.76ZM29.926 4.933h3.433V6.17h-.82l-2.106 5.18c-.604 1.455-1.595 2.825-3.104 2.825-.372 0-.866-.042-1.208-.124l.15-1.51c.22.04.508.068.66.068.7 0 1.489-.434 1.736-1.19l-2.134-5.25h-.82V4.934h3.435V6.17h-.82l1.208 2.973 1.208-2.973h-.818V4.933Z"})]})})}),(0,s.jsx)(tS,{className:"h-[118px] rotate-[360deg]",children:(0,s.jsx)(tV,{className:"rotate-[-360deg]",children:(0,s.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"25",viewBox:"0 0 25 20",fill:"none",children:(0,s.jsx)("path",{fill:"#000",d:"m12.5 0 11.547 20H.953L12.5 0Z"})})})}),(0,s.jsx)(tS,{className:"h-[170px] rotate-[180deg]",children:(0,s.jsx)(tV,{className:"rotate-[-180deg]",children:(0,s.jsxs)("svg",{className:"text-black",width:"25",viewBox:"0 0 30 30",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-label":"Deno Logo",children:[(0,s.jsxs)("g",{clipPath:"url(#clip0_29_599)",children:[(0,s.jsx)("path",{d:"M15 0C23.2843 0 30 6.71572 30 15C30 23.2843 23.2843 30 15 30C6.71572 30 0 23.2843 0 15C0 6.71572 6.71572 0 15 0Z",fill:"currentColor"}),(0,s.jsx)("path",{d:"M14.6635 22.3394C14.2788 22.2357 13.8831 22.4584 13.7705 22.8381L13.7655 22.8558L12.7694 26.5472L12.7649 26.565C12.6711 26.9498 12.9011 27.3414 13.2858 27.4451C13.6704 27.549 14.0661 27.3263 14.1787 26.9465L14.1837 26.9289L15.1797 23.2375L15.1843 23.2196C15.1911 23.1919 15.1962 23.164 15.1997 23.1362L15.2026 23.1084L15.179 22.9888L15.1445 22.8166L15.1227 22.7091C15.076 22.619 15.0111 22.5396 14.932 22.4759C14.853 22.4123 14.7615 22.3658 14.6635 22.3394ZM7.7224 18.5379C7.70424 18.5741 7.68883 18.6123 7.67658 18.6522L7.66967 18.6763L6.67358 22.3677L6.669 22.3856C6.57525 22.7704 6.80524 23.1619 7.1899 23.2657C7.57451 23.3695 7.97026 23.1469 8.08287 22.7671L8.08779 22.7494L8.99096 19.4023C8.51793 19.1518 8.09336 18.8628 7.7224 18.5379ZM5.34707 14.2929C4.9624 14.1891 4.56666 14.4117 4.4541 14.7915L4.44912 14.8092L3.45303 18.5006L3.44846 18.5184C3.35471 18.9032 3.58469 19.2947 3.96936 19.3985C4.35397 19.5023 4.74971 19.2797 4.86232 18.8999L4.86725 18.8822L5.86334 15.1908L5.86791 15.173C5.96166 14.7882 5.73174 14.3967 5.34707 14.2929ZM27.682 13.4546C27.2973 13.3508 26.9015 13.5734 26.789 13.9532L26.784 13.9709L25.7879 17.6623L25.7833 17.6801C25.6896 18.0649 25.9196 18.4564 26.3042 18.5602C26.6889 18.664 27.0846 18.4414 27.1972 18.0616L27.2021 18.0439L28.1982 14.3525L28.2028 14.3347C28.2965 13.9499 28.0666 13.5584 27.682 13.4546ZM3.17781 8.52527C2.34361 10.0444 1.81243 11.7112 1.61377 13.4329C1.7088 13.5412 1.83381 13.619 1.97301 13.6563C2.35768 13.7602 2.75342 13.5375 2.86598 13.1577L2.87096 13.1401L3.86705 9.44865L3.87162 9.43084C3.96537 9.04599 3.73539 8.65447 3.35072 8.5507C3.2943 8.53547 3.23623 8.52694 3.17781 8.52527ZM25.159 8.5507C24.7744 8.44687 24.3786 8.66953 24.266 9.04933L24.2611 9.06697L23.265 12.7584L23.2604 12.7762C23.1667 13.161 23.3966 13.5526 23.7813 13.6563C24.1659 13.7602 24.5617 13.5375 24.6743 13.1577L24.6792 13.1401L25.6753 9.44865L25.6799 9.43084C25.7736 9.04599 25.5436 8.65447 25.159 8.5507Z",fill:"white"}),(0,s.jsx)("path",{d:"M7.51285 5.04065C7.12824 4.93682 6.73249 5.15948 6.61988 5.53929L6.61495 5.55692L5.61886 9.24833L5.61429 9.26614C5.52054 9.65098 5.75052 10.0425 6.13519 10.1463C6.5198 10.2501 6.91554 10.0274 7.02816 9.64764L7.03308 9.63001L8.029
63717 5.9386L8.03374 5.92079C8.12749 5.53595 7.89751 5.14442 7.51285 5.04065ZM20.3116 5.73845C19.9269 5.63462 19.5312 5.85727 19.4186 6.23708L19.4136 6.25471L18.7443 8.73499C19.1779 8.94915 19.5917 9.20126 19.9809 9.48839L20.0453 9.53643L20.8279 6.63639L20.8324 6.61858C20.9262 6.23374 20.6963 5.84221 20.3116 5.73845ZM13.7968 1.57642C13.3296 1.61771 12.8647 1.68338 12.4043 1.77317L12.3066 1.79263L11.3782 5.23419L11.3736 5.252C11.2799 5.63684 11.5099 6.02837 11.8945 6.13214C12.2792 6.23596 12.6749 6.01331 12.7875 5.6335L12.7924 5.61587L13.7885 1.92446L13.7931 1.90665C13.8196 1.79831 13.8209 1.68533 13.7968 1.57642ZM22.9626 4.1263L22.7669 4.85169L22.7623 4.86944C22.6686 5.25429 22.8986 5.64581 23.2832 5.74958C23.6678 5.85341 24.0636 5.63075 24.1762 5.25095L24.1811 5.23331L24.2025 5.15462C23.8362 4.81205 23.4511 4.49009 23.0491 4.19022L22.9626 4.1263ZM17.1672 1.69677L16.8139 3.00593L16.8094 3.02374C16.7156 3.40858 16.9456 3.80011 17.3303 3.90388C17.7149 4.0077 18.1106 3.78505 18.2233 3.40524L18.2282 3.38761L18.6 2.00966C18.1624 1.88867 17.719 1.79001 17.2714 1.71405L17.1672 1.69677Z",fill:"white"}),(0,s.jsx)("path",{d:"M9.69085 24.6253C9.80341 24.2455 10.1992 24.0229 10.5838 24.1266C10.9685 24.2303 11.1984 24.6219 11.1047 25.0068L11.1001 25.0246L10.3872 27.6664L10.2876 27.6297C9.85836 27.4694 9.43765 27.2873 9.0271 27.0839L9.68587 24.6429L9.69085 24.6253Z",fill:"white"}),(0,s.jsx)("path",{d:"M14.4141 8.49082C10.0522 8.49082 6.65918 11.2368 6.65918 14.6517C6.65918 17.8769 9.78123 19.9362 14.6211 19.8331C15.0327 19.8243 15.1517 20.1008 15.2856 20.4734C15.4196 20.846 15.7796 22.8097 16.0665 24.3117C16.3233 25.656 16.5842 27.0052 16.7834 28.3596C19.9439 27.9418 22.8663 26.3807 25.0076 24.0261L22.7237 15.5088C22.1544 13.4518 21.489 11.5564 19.7283 10.1794C18.3118 9.07166 16.5122 8.49082 14.4141 8.49082Z",fill:"white"}),(0,s.jsx)("path",{d:"M15.3516 10.957C15.8694 10.957 16.2891 11.3767 16.2891 11.8945C16.2891 12.4123 15.8694 12.832 15.3516 12.832C14.8338 12.832 14.4141 12.4123 14.4141 11.8945C14.4141 11.3767 14.8338 10.957 15.3516 10.957Z",fill:"currentColor"})]}),(0,s.jsx)("defs",{children:(0,s.jsx)("clipPath",{id:"clip0_29_599",children:(0,s.jsx)("rect",{width:"30",height:"30",fill:"white"})})})]})})}),(0,s.jsx)(tS,{className:"h-[170px] rotate-[60deg]",children:(0,s.jsx)(tV,{className:"rotate-[-60deg]",children:(0,s.jsx)(tv.default,{className:"block h-6 w-6 text-black",src:"/lagon-icon-black.png",width:40,height:40,alt:"lagon logo"})})}),(0,s.jsx)(tS,{className:"h-[170px] rotate-[300deg]",children:(0,s.jsx)(tV,{className:"rotate-[-300deg]",children:(0,s.jsxs)("svg",{className:"text-black",width:26,viewBox:"0 0 128 113",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg","aria-label":"Netlify Logo",children:[(0,s.jsx)("g",{children:(0,s.jsx)("path",{d:"M80.4595 74.6047H71.6825L70.9494 73.8717V53.3259C70.9494 49.6705 69.513 46.8372 65.1047 46.7382C62.8361 46.6787 60.2406 46.7382 57.4669 46.8471L57.0508 47.2731V55.5746V73.8618L56.3177 74.5948H47.5407L46.8076 73.8618V38.7636L47.5407 38.0305H67.294C74.9714 38.0305 81.1926 44.2517 81.1926 51.9291V73.8717L80.4595 74.6047Z"})}),(0,s.jsxs)("g",{children:[(0,s.jsx)("path",{d:"M34.5931 94.0509H33.3845L27.3516 88.0179V86.8094L36.5744 77.5866H42.964L43.8159 78.4385V84.8281L34.5931 94.0509Z"}),(0,s.jsx)("path",{d:"M27.3516 25.816V24.6074L33.3845 18.5744H34.5931L43.8159 27.7972V34.1868L42.964 35.0388H36.5744L27.3516 25.816Z"}),(0,s.jsx)("path",{d:"M35.8412 61.4491H0.73307L0 60.716V51.9192L0.73307 51.1861H35.8412L36.5743 51.9192V60.716L35.8412 61.4491Z"}),(0,s.jsx)("path",{d:"M127.277 61.4491H92.1686L91.4355 60.716V51.9192L92.1686 51.1861H127.277L128.01 51.9192V60.716L127.277 61.4491Z"}),(0,s.jsx)("path",{d:"M58.9429 27.0642V0.73307L59.6759 0H68.4728L69.2059 0.73307V27.0642L68.4728 27.7972H59.6759L58.9429 27.0642Z"}),(0,s.jsx)("path",{d:"M58.9429 111.902V85.5711L59.6759 84.838H68.4728L69.2059 85.5711V111.902L68.4728 112.635H59.6759L58.9429 111.902Z"})]})]})})}),(0,s.jsx)(tS,{className:"h-[220px] rotate-[120deg]",children:(0,s.jsx)(tV,{className:"rotate-[-120deg] opacity-5"})}),(0,s.jsx)(tS,{className:"h-[220px] rotate-[240deg]",children:(0,s.jsx)(tV,{className:"rotate-[240deg] opacity-5"})}),(0,s.jsx)(tS,{className:"h-[220px] rotate-[360deg]",children:(0,s.jsx)(tV,{className:"rotate-[360deg] opacity-5"})})]})})]})}function tS({children:e,className:t}){return(0,s.jsx)("span",{className:(0,o.default)("absolute bottom-1/2 left-1/2 z-10","flex w-0 origin-bottom justify-center",t),children:e})}function tV({children:e,className:t}){return(0,s.jsx)("span",{className:(0,o.default)("flex h-12 w-12 shrink-0 items-center justify-center","rounded-full bg-bg-mute dark:bg-white",t),children:e})}function tM(){return(0,s.jsxs)(ty,{className:"md:col-span-3",children:[(0,s.jsxs)("header",{children:[(0,s.jsx)(tL,{link:"https://latency.upstash.io",title:"Latency",children:"Global low latency"}),(0,s.jsx)(tk,{children:"Data is replicated across 8+ regions worldwide to provide lowest latency for your users. Add/remove regions without any downtime."})]}),(0,s.jsx)("div",{className:"flex justify-between gap-1",children:Array.from(Array(30).keys()).map(e=>(0,s.jsx)("div",{className:(0,o.default)("flex h-10 w-[8px] items-end rounded-full bg-bg-mute md:h-16",e>15&&"hidden md:flex"),children:(0,s.jsx)("span",{className:(0,o.default)("h-4 w-full rounded-full bg-primary")})},e))})]})}var tN=e.i(86524);function t_(){let[e,t]=(0,B.useState)(eU.Product.VECTOR);return(0,B.useEffect)(()=>{tN.default.highlightAll()},[e]),(0,s.jsxs)(ty,{className:"md:col-span-4",children:[(0,s.jsxs)("header",{children:[(0,s.jsx)(tL,{link:"/docs/redis/features/restapi",title:"Rest API",children:"HTTP/REST API"}),(0,s.jsx)(tk,{children:"HTTP-based APIs enable access from serverless and edge functions in addition to supporting standard clients via the Redis protocol."})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"flex items-center gap-px",children:[eU.Product.REDIS,eU.Product.VECTOR,eU.Product.QSTASH,eU.Product.SEARCH].map(r=>(0,s.jsxs)("label",{className:(0,o.default)("cursor-pointer select-none bg-bg-mute px-4 py-1 text-sm first:rounded-l-full last:rounded-r-full",r===e&&"bg-primary text-white"),children:[(0,s.jsx)("input",{className:"pointer-events-none absolute opacity-0",type:"radio",value:r,name:"product",onChange:e=>{t(e.target.value)}}),(0,s.jsx)("span",{children:r})]},r))}),(0,s.jsx)("div",{className:"mt-4 grid rounded-xl md:h-[276px]",children:(0,s.jsxs)("div",{className:"no-scrollbar overflow-y-scroll roun
637ded-2xl bg-pre-bg p-4 md:px-6",children:[(0,s.jsx)(tR,{hidden:e!==eU.Product.REDIS,children:(0,s.jsx)("code",{className:"lang-js",children:tZ[eU.Product.REDIS]})}),(0,s.jsx)(tR,{hidden:e!==eU.Product.QSTASH,children:(0,s.jsx)("code",{className:"lang-js",children:tZ[eU.Product.QSTASH]})})," ",(0,s.jsx)(tR,{hidden:e!==eU.Product.VECTOR,children:(0,s.jsx)("code",{className:"lang-js",children:tZ[eU.Product.VECTOR]})}),(0,s.jsx)(tR,{hidden:e!==eU.Product.SEARCH,children:(0,s.jsx)("code",{className:"lang-js",children:tZ[eU.Product.SEARCH]})})]})})]})]})}function tR({className:e,...t}){return(0,s.jsx)("pre",{className:(0,o.default)("no-scrollbar !text-[.86em]",e),...t})}let tZ={[eU.Product.REDIS]:`import { Redis } from '@upstash/redis'
638
639const redis = new Redis({
640  url: "<UPSTASH_REDIS_REST_URL>",
641  token: "<UPSTASH_REDIS_REST_TOKEN>",
642})
643   
644const data = await redis.set("foo", "bar");`,[eU.Product.QSTASH]:`import { Client } from "@upstash/qstash";
645
646const client = new Client({
647  token: "<QSTASH_TOKEN>",
648});
649
650const res = await client.publishJSON({
651  url: "https://my-api...",
652  body: {
653    hello: "world",
654  },
655});`,[eU.Product.VECTOR]:`import { Index } from "@upstash/vector";
656
657const index = new Index<Metadata>({
658  url: "<UPSTASH_VECTOR_REST_URL>",
659  token: "<UPSTASH_VECTOR_REST_TOKEN>",
660});
661
662await index.upsert([{
663  id: 'tokyo',
664  data: "Tokyo is the capital of Japan.",
665}])`,[eU.Product.SEARCH]:`import { Search } from "@upstash/search";
666
667const client = new Search({
668  url: "<UPSTASH_SEARCH_REST_URL>",
669  token: "<UPSTASH_SEARCH_REST_TOKEN>",
670});
671
672await client.index("movies").upsert([{
673    id: "star-wars",
674    content: { title: "Star Wars is a sci-fi space opera." },
675    metadata: { genre: "sci-fi", category: "classic" }
676}]);`};function tE(){return(0,s.jsxs)(ty,{className:"md:col-span-3",children:[(0,s.jsxs)("header",{children:[(0,s.jsx)(tL,{link:"/pricing/redis",title:"Pricing",children:"Price scales to zero"}),(0,s.jsx)(tk,{children:"Start free, then pay only for what you use with per-request pricing. You'll never pay more than the cap price, guaranteed."})]}),(0,s.jsx)("div",{className:"flex gap-1 md:gap-4",children:[{title:"Requests",value:"12,004"},{title:"Storage",value:"420KB"},{title:"Cost",value:"$0.02"}].map(({title:e,value:t},r)=>(0,s.jsxs)("div",{className:"flex grow flex-col justify-center rounded-xl bg-bg-mute px-4 py-2 md:h-20",children:[(0,s.jsx)("span",{className:"text-sm opacity-40",children:e}),(0,s.jsx)("span",{className:(0,o.default)("text-xl text-amber-500 md:text-2xl dark:text-amber-200",2===r&&"text-primary"),children:t})]},e))})]})}function tP(){return(0,s.jsxs)("section",{id:Z.SERVERLESS,className:"relative z-10 py-16 md:mt-20 md:py-28",children:[(0,s.jsx)(f.default,{section:"serverless"}),(0,s.jsx)(r.default,{className:"top-32 h-1/2"}),(0,s.jsxs)(n.default,{children:[(0,s.jsxs)(i,{children:[(0,s.jsx)(l,{children:"Serverless & Edge"}),(0,s.jsx)(c,{children:"The platform tailored for the serverless revolution"})]}),(0,s.jsxs)("div",{className:"mt-10 grid gap-4 text-left md:mt-20 md:grid-cols-6 md:gap-6",children:[(0,s.jsx)(tM,{}),(0,s.jsx)(tE,{}),(0,s.jsx)(t_,{}),(0,s.jsx)(tH,{})]})]})]})}var tO=e.i(65834);e.s(["default",0,function(){return(0,tO.useSetAffiliateCodeToSessionStorage)(),(0,s.jsxs)("main",{className:"text-center",children:[(0,s.jsx)(Q,{}),(0,s.jsx)(tb,{}),(0,s.jsx)(E,{}),(0,s.jsx)(tP,{}),(0,s.jsx)(x,{}),(0,s.jsx)(eO,{}),(0,s.jsx)(k,{}),(0,s.jsx)(V,{})]})}],52683)}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.