[{"data":1,"prerenderedAt":1143},["ShallowReactive",2],{"docs-navigation":3,"docs:\u002Fdocs\u002Fnuxt\u002Fblob\u002Fwhen-to-use":1032,"\u002Fdocs\u002Fnuxt\u002Fblob\u002Fwhen-to-use:surround":1140},[4],{"title":5,"path":6,"children":7},"Docs","\u002Fdocs",[8,502,767],{"title":9,"path":10,"children":11},"Vite","\u002Fdocs\u002Fvite",[12,30,73,100,131,166,235,260,309,358,388,419,477],{"title":13,"path":14,"description":15,"icon":16,"children":17},"Getting Started","\u002Fdocs\u002Fvite\u002Fgetting-started","Learn the ViteHub package model, pick a starting path, and get to a working feature quickly.","i-lucide-rocket",[18,22,26],{"title":19,"path":20,"description":21},"Choose a Package","\u002Fdocs\u002Fvite\u002Fgetting-started\u002Fchoose-a-package","Pick the right ViteHub feature by the job you need to solve on the server.",{"title":23,"path":24,"description":25},"Entrypoints","\u002Fdocs\u002Fvite\u002Fgetting-started\u002Fentrypoints","Understand what belongs on the package root and what each framework-specific entrypoint owns.",{"title":27,"path":28,"description":29},"Architecture","\u002Fdocs\u002Fvite\u002Fgetting-started\u002Farchitecture","How ViteHub keeps one shared feature bridge across Vite, Nitro, and Nuxt.",{"title":31,"path":32,"description":33,"icon":34,"children":35},"Database","\u002Fdocs\u002Fvite\u002Fdatabase","Set up Drizzle or Prisma with `@vitehub\u002Fdb` and explicit ORM runtime imports.","i-lucide-database",[36,40,44,48,53,57,61,65,69],{"title":37,"path":38,"description":39},"Quickstart","\u002Fdocs\u002Fvite\u002Fdatabase\u002Fquickstart","Set up a first local Drizzle database with SQLite.",{"title":41,"path":42,"description":43},"Runtime API","\u002Fdocs\u002Fvite\u002Fdatabase\u002Fruntime-api","Review the `db` config surface and the explicit ORM runtime imports.",{"title":45,"path":46,"description":47},"When to use Database","\u002Fdocs\u002Fvite\u002Fdatabase\u002Fwhen-to-use","Decide when a relational database is the right primitive compared with KV, Blob, or other storage backends.",{"title":49,"path":50,"description":51,"group":52},"Drizzle","\u002Fdocs\u002Fvite\u002Fdatabase\u002Fdrizzle","Configure Drizzle with `@vitehub\u002Fdb\u002Fdrizzle`, schema discovery, and committed SQL migrations.","Guides",{"title":54,"path":55,"description":56,"group":52},"Prisma","\u002Fdocs\u002Fvite\u002Fdatabase\u002Fprisma","Configure Prisma with `@vitehub\u002Fdb\u002Fprisma`, generated client output, and native Prisma migrations.",{"title":58,"path":59,"description":60,"group":52},"Migrations","\u002Fdocs\u002Fvite\u002Fdatabase\u002Fmigrations","Understand when ViteHub applies committed Drizzle and Prisma migrations during development and build.",{"title":62,"path":63,"description":64,"group":52},"Platform notes","\u002Fdocs\u002Fvite\u002Fdatabase\u002Fplatform-notes","Review driver defaults, hosting behavior, and current runtime limits for Drizzle and Prisma.",{"title":66,"path":67,"description":68},"Troubleshooting","\u002Fdocs\u002Fvite\u002Fdatabase\u002Ftroubleshooting","Diagnose ORM config, runtime-import, and migration issues.",{"title":70,"path":71,"description":72},"Playground","\u002Fdocs\u002Fvite\u002Fdatabase\u002Fplayground","Inspect the existing Database playground app and the files that show the ORM integration flow.",{"title":74,"path":75,"description":76,"icon":77,"children":78},"KV","\u002Fdocs\u002Fvite\u002Fkv","Set up key-value storage with the same provider detection used by NuxtHub.","i-lucide-database-zap",[79,82,85,89,94,97],{"title":37,"path":80,"description":81},"\u002Fdocs\u002Fvite\u002Fkv\u002Fquickstart","Read and write a first key with the local filesystem driver.",{"title":41,"path":83,"description":84},"\u002Fdocs\u002Fvite\u002Fkv\u002Fruntime-api","Reference for the `kv` handle and the common KV config types.",{"title":86,"path":87,"description":88},"When to use KV","\u002Fdocs\u002Fvite\u002Fkv\u002Fwhen-to-use","Decide when KV is the right primitive compared with Cache, Blob, or a relational database.",{"title":90,"path":91,"description":92,"icon":93,"group":52},"Usage","\u002Fdocs\u002Fvite\u002Fkv\u002Fusage","Use the KV SDK to set, get, delete, clear, and list key-value pairs.","i-lucide-code",{"title":66,"path":95,"description":96},"\u002Fdocs\u002Fvite\u002Fkv\u002Ftroubleshooting","Diagnose driver selection and storage-behavior problems across the supported KV backends.",{"title":70,"path":98,"description":99},"\u002Fdocs\u002Fvite\u002Fkv\u002Fplayground","Inspect the existing KV playground app and the files that show the shared storage flow.",{"title":101,"path":102,"description":103,"icon":104,"children":105},"Blob","\u002Fdocs\u002Fvite\u002Fblob","Add blob storage for images, videos, documents, and other files with `@vitehub\u002Fblob`.","i-lucide-shapes",[106,109,112,116,121,125,128],{"title":37,"path":107,"description":108},"\u002Fdocs\u002Fvite\u002Fblob\u002Fquickstart","Store and serve a first file with the local filesystem driver.",{"title":41,"path":110,"description":111},"\u002Fdocs\u002Fvite\u002Fblob\u002Fruntime-api","Reference for `blob`, `ensureBlob()`, and the core Blob types.",{"title":113,"path":114,"description":115},"When to use Blob","\u002Fdocs\u002Fvite\u002Fblob\u002Fwhen-to-use","Decide when Blob is the right primitive compared with KV, Cache, or a custom storage layer.",{"title":117,"path":118,"description":119,"icon":120,"group":52},"Upload","\u002Fdocs\u002Fvite\u002Fblob\u002Fupload","Upload files with validation, simple form handlers, and multipart flows using `@vitehub\u002Fblob`.","i-lucide-upload",{"title":122,"path":123,"description":124,"icon":93,"group":52},"Blob SDK","\u002Fdocs\u002Fvite\u002Fblob\u002Fusage","Store, read, list, validate, serve, and delete files with `@vitehub\u002Fblob`.",{"title":66,"path":126,"description":127},"\u002Fdocs\u002Fvite\u002Fblob\u002Ftroubleshooting","Diagnose driver selection, upload, and file-serving problems.",{"title":70,"path":129,"description":130},"\u002Fdocs\u002Fvite\u002Fblob\u002Fplayground","Inspect the existing Blob playground app and the files that show the end-to-end runtime flow.",{"title":132,"path":133,"description":134,"icon":135,"children":136},"Vector","\u002Fdocs\u002Fvite\u002Fvector","Add provider-agnostic named vector indexes with similarity search.","i-lucide-scan-search",[137,140,143,147,153,158,163],{"title":37,"path":138,"description":139},"\u002Fdocs\u002Fvite\u002Fvector\u002Fquickstart","Set up a first vector index against a pgvector-backed Postgres database.",{"title":41,"path":141,"description":142},"\u002Fdocs\u002Fvite\u002Fvector\u002Fruntime-api","Reference for defineVector, getVector, handle methods, and the core Vector types.",{"title":144,"path":145,"description":146},"When to use Vector","\u002Fdocs\u002Fvite\u002Fvector\u002Fwhen-to-use","Decide when Vector is the right primitive compared with relational queries, keyword search, or other storage backends.",{"title":148,"path":149,"description":150,"icon":151,"group":152},"Cloudflare","\u002Fdocs\u002Fvite\u002Fvector\u002Fcloudflare","Configure @vitehub\u002Fvector against Cloudflare Vectorize.","i-simple-icons-cloudflare","Providers",{"title":154,"path":155,"description":156,"icon":157,"group":152},"Postgres","\u002Fdocs\u002Fvite\u002Fvector\u002Fpostgres","Configure @vitehub\u002Fvector against a pgvector-backed Postgres database.","i-simple-icons-postgresql",{"title":159,"path":160,"description":161,"icon":162,"group":152},"Upstash","\u002Fdocs\u002Fvite\u002Fvector\u002Fupstash","Configure @vitehub\u002Fvector against the Upstash Vector HTTP API.","i-simple-icons-upstash",{"title":66,"path":164,"description":165},"\u002Fdocs\u002Fvite\u002Fvector\u002Ftroubleshooting","Diagnose provider, schema, and query issues across the supported vector backends.",{"title":167,"path":168,"description":169,"icon":170,"children":171},"Queue","\u002Fdocs\u002Fvite\u002Fqueue","Send background jobs through Platformatic, Cloudflare, Vercel, Netlify, Upstash QStash, or Memory.","i-lucide-layers",[172,175,178,182,186,190,194,198,202,207,210,215,220,224,229,232],{"title":37,"path":173,"description":174},"\u002Fdocs\u002Fvite\u002Fqueue\u002Fquickstart","Get a first queue working locally with the memory provider.",{"title":41,"path":176,"description":177},"\u002Fdocs\u002Fvite\u002Fqueue\u002Fruntime-api","Reference for defineQueue, runQueue, deferQueue, getQueue, and the core Queue types.",{"title":179,"path":180,"description":181},"When to use Queue","\u002Fdocs\u002Fvite\u002Fqueue\u002Fwhen-to-use","Decide when Queue is the right primitive compared with Workflow, Cron, or inline request handling.",{"title":183,"path":184,"description":185,"group":52},"Send a job","\u002Fdocs\u002Fvite\u002Fqueue\u002Fguides\u002Fsend-a-job","Enqueue payloads with runQueue and the common delivery patterns.",{"title":187,"path":188,"description":189,"group":52},"Defer after response","\u002Fdocs\u002Fvite\u002Fqueue\u002Fguides\u002Fdefer-after-response","Use deferQueue when the queue send should happen after the current response is committed.",{"title":191,"path":192,"description":193,"group":52},"Validate payloads","\u002Fdocs\u002Fvite\u002Fqueue\u002Fguides\u002Fvalidate-payloads","Validate payloads before enqueueing and before running queue handlers.",{"title":195,"path":196,"description":197,"group":52},"Local development","\u002Fdocs\u002Fvite\u002Fqueue\u002Fguides\u002Flocal-development","Use the memory provider for local development and understand how auto-selection works.",{"title":199,"path":200,"description":201,"group":52},"Native handles","\u002Fdocs\u002Fvite\u002Fqueue\u002Fguides\u002Fnative-handles","Know when to use getQueue and provider-native methods instead of the portable runtime API.",{"title":203,"path":204,"description":205,"icon":206,"group":152},"Platformatic","\u002Fdocs\u002Fvite\u002Fqueue\u002Fproviders\u002Fplatformatic","Configure Platformatic Job Queue with local or self-hosted workers.","i-brand-platformatic",{"title":148,"path":208,"description":209,"icon":151,"group":152},"\u002Fdocs\u002Fvite\u002Fqueue\u002Fproviders\u002Fcloudflare","Configure Cloudflare Queues and process named queues in Workers.",{"title":211,"path":212,"description":213,"icon":214,"group":152},"Vercel","\u002Fdocs\u002Fvite\u002Fqueue\u002Fproviders\u002Fvercel","Configure Vercel Queue and send named jobs through Vercel.","i-simple-icons-vercel",{"title":216,"path":217,"description":218,"icon":219,"group":152},"Netlify","\u002Fdocs\u002Fvite\u002Fqueue\u002Fproviders\u002Fnetlify","Configure Netlify Async Workloads and run named queues on Netlify.","i-simple-icons-netlify",{"title":221,"path":222,"description":223,"icon":162,"group":152},"Upstash QStash","\u002Fdocs\u002Fvite\u002Fqueue\u002Fproviders\u002Fupstash-qstash","Configure Upstash QStash for queues and signed callback delivery.",{"title":225,"path":226,"description":227,"icon":228,"group":152},"Memory","\u002Fdocs\u002Fvite\u002Fqueue\u002Fproviders\u002Fmemory","Process queue jobs in-memory for local development and testing.","i-lucide-memory-stick",{"title":66,"path":230,"description":231},"\u002Fdocs\u002Fvite\u002Fqueue\u002Ftroubleshooting","Diagnose common Queue setup and runtime problems across local and hosted providers.",{"title":70,"path":233,"description":234},"\u002Fdocs\u002Fvite\u002Fqueue\u002Fplayground","Explore the existing Queue playground app and the files that show the end-to-end runtime flow.",{"title":236,"path":237,"description":238,"icon":239,"children":240},"Cache","\u002Fdocs\u002Fvite\u002Fcache","Configure Nitro cache storage for local development, Vercel, and Cloudflare deployments.","i-lucide-timer-reset",[241,244,247,251,254,257],{"title":37,"path":242,"description":243},"\u002Fdocs\u002Fvite\u002Fcache\u002Fquickstart","Cache a first route with the local filesystem driver.",{"title":41,"path":245,"description":246},"\u002Fdocs\u002Fvite\u002Fcache\u002Fruntime-api","Review the Cache config surface and the Nitro runtime APIs it enables.",{"title":248,"path":249,"description":250},"When to use Cache","\u002Fdocs\u002Fvite\u002Fcache\u002Fwhen-to-use","Decide when Cache is the right primitive compared with KV or other durable storage.",{"title":90,"path":252,"description":253,"icon":93,"group":52},"\u002Fdocs\u002Fvite\u002Fcache\u002Fusage","Cache routes and server functions with practical invalidation examples.",{"title":66,"path":255,"description":256},"\u002Fdocs\u002Fvite\u002Fcache\u002Ftroubleshooting","Diagnose driver selection, invalidation, and cache-mount problems.",{"title":70,"path":258,"description":259},"\u002Fdocs\u002Fvite\u002Fcache\u002Fplayground","Inspect the existing Cache playground app and the files that show the cache runtime flow.",{"title":261,"path":262,"description":263,"icon":264,"children":265},"Email","\u002Fdocs\u002Fvite\u002Femail","Render Markdown email files and send them through Resend, SendGrid, or Postmark.","i-lucide-mail",[266,269,272,276,281,286,291,296,301,306],{"title":37,"path":267,"description":268},"\u002Fdocs\u002Fvite\u002Femail\u002Fquickstart","Render and send a first email through the Resend provider.",{"title":41,"path":270,"description":271},"\u002Fdocs\u002Fvite\u002Femail\u002Fruntime-api","Reference for renderEmail, sendEmail, createEmailClient, and the core Email types.",{"title":273,"path":274,"description":275},"When to use Email","\u002Fdocs\u002Fvite\u002Femail\u002Fwhen-to-use","Decide when ViteHub Email is the right primitive compared with provider-native templates or custom delivery code.",{"title":277,"path":278,"description":279,"icon":280,"group":52},"Frontmatter","\u002Fdocs\u002Fvite\u002Femail\u002Ffrontmatter","Define subject lines, recipients, metadata, and delivery defaults directly in the Markdown email file.","i-lucide-file-text",{"title":282,"path":283,"description":284,"icon":285,"group":52},"Input Schemas","\u002Fdocs\u002Fvite\u002Femail\u002Finput-schemas","Add an embedded schema block when you want email input validation and stronger TypeScript inference.","i-brand-standard-schema",{"title":287,"path":288,"description":289,"icon":290,"group":52},"i18n","\u002Fdocs\u002Fvite\u002Femail\u002Fi18n","Localize Markdown emails with locale-specific template files and ICU message formatting.","i-lucide-languages",{"title":292,"path":293,"description":294,"icon":295,"group":152},"Resend","\u002Fdocs\u002Fvite\u002Femail\u002Fresend","Configure Resend for transactional delivery and native batch sending.","i-provider-resend",{"title":297,"path":298,"description":299,"icon":300,"group":152},"SendGrid","\u002Fdocs\u002Fvite\u002Femail\u002Fsendgrid","Configure SendGrid when you need advanced delivery controls and template support.","i-provider-sendgrid",{"title":302,"path":303,"description":304,"icon":305,"group":152},"Postmark","\u002Fdocs\u002Fvite\u002Femail\u002Fpostmark","Configure Postmark for transactional streams and template-first sends.","i-provider-postmark",{"title":66,"path":307,"description":308},"\u002Fdocs\u002Fvite\u002Femail\u002Ftroubleshooting","Diagnose discovery, rendering, validation, and delivery problems across the supported email providers.",{"title":310,"path":311,"description":312,"icon":313,"children":314},"Workflow","\u002Fdocs\u002Fvite\u002Fworkflow","Run durable workflows on Cloudflare, Netlify, Vercel, or OpenWorkflow.","i-lucide-workflow",[315,318,321,325,329,333,336,339,342,345,349,352,355],{"title":37,"path":316,"description":317},"\u002Fdocs\u002Fvite\u002Fworkflow\u002Fquickstart","Get a first workflow running with the Vercel provider.",{"title":41,"path":319,"description":320},"\u002Fdocs\u002Fvite\u002Fworkflow\u002Fruntime-api","Reference for defineWorkflow, createWorkflow, runWorkflow, deferWorkflow, getWorkflowRun, readValidatedPayload, and the core Workflow types.",{"title":322,"path":323,"description":324},"When to use Workflow","\u002Fdocs\u002Fvite\u002Fworkflow\u002Fwhen-to-use","Decide when Workflow is the right primitive compared with Queue, Cron, Sandbox, or inline execution.",{"title":326,"path":327,"description":328,"group":52},"Start a run","\u002Fdocs\u002Fvite\u002Fworkflow\u002Fguides\u002Fstart-a-run","Start a named workflow and return the new run id.",{"title":330,"path":331,"description":332,"group":52},"Check a run","\u002Fdocs\u002Fvite\u002Fworkflow\u002Fguides\u002Fcheck-a-run","Reattach to a workflow run later with getWorkflowRun.",{"title":187,"path":334,"description":335,"group":52},"\u002Fdocs\u002Fvite\u002Fworkflow\u002Fguides\u002Fdefer-after-response","Start workflow work after the current response has already committed.",{"title":191,"path":337,"description":338,"group":52},"\u002Fdocs\u002Fvite\u002Fworkflow\u002Fguides\u002Fvalidate-payloads","Validate and normalize payloads before you start a workflow run.",{"title":148,"path":340,"description":341,"icon":151},"\u002Fdocs\u002Fvite\u002Fworkflow\u002Fproviders\u002Fcloudflare","Configure Cloudflare Workflows and inspect runs from your app.",{"title":211,"path":343,"description":344,"icon":214},"\u002Fdocs\u002Fvite\u002Fworkflow\u002Fproviders\u002Fvercel","Configure Vercel Workflow and run durable workflows on Vercel.",{"title":346,"path":347,"description":348,"icon":313},"OpenWorkflow","\u002Fdocs\u002Fvite\u002Fworkflow\u002Fproviders\u002Fopenworkflow","Connect OpenWorkflow and use your own workflow backend behind the ViteHub API.",{"title":216,"path":350,"description":351,"icon":219},"\u002Fdocs\u002Fvite\u002Fworkflow\u002Fproviders\u002Fnetlify","Configure Netlify Async Workloads and run discovered workflows on Netlify.",{"title":66,"path":353,"description":354},"\u002Fdocs\u002Fvite\u002Fworkflow\u002Ftroubleshooting","Diagnose common Workflow setup and runtime problems across supported providers.",{"title":70,"path":356,"description":357},"\u002Fdocs\u002Fvite\u002Fworkflow\u002Fplayground","Explore the existing Workflow playground app and the files that show the end-to-end runtime flow.",{"title":359,"path":360,"description":361,"icon":362,"children":363},"Cron","\u002Fdocs\u002Fvite\u002Fcron","Schedule crons with Node, Cloudflare, or Vercel.","i-lucide-list-check",[364,367,370,374,379,382,385],{"title":37,"path":365,"description":366},"\u002Fdocs\u002Fvite\u002Fcron\u002Fquickstart","Run a first scheduled cron with the Node provider.",{"title":41,"path":368,"description":369},"\u002Fdocs\u002Fvite\u002Fcron\u002Fruntime-api","Reference for defineCron, createCron, runCron, validation helpers, and scheduler utilities.",{"title":371,"path":372,"description":373},"When to use Cron","\u002Fdocs\u002Fvite\u002Fcron\u002Fwhen-to-use","Decide when Cron is the right primitive compared with Queue, Workflow, or inline execution.",{"title":375,"path":376,"description":377,"icon":378,"group":152},"Node","\u002Fdocs\u002Fvite\u002Fcron\u002Fnode","Configure in-process scheduling for local crons and lightweight cron tasks.","i-simple-icons-nodedotjs",{"title":148,"path":380,"description":381,"icon":151,"group":152},"\u002Fdocs\u002Fvite\u002Fcron\u002Fcloudflare","Configure Cloudflare-triggered schedules for your crons.",{"title":211,"path":383,"description":384,"icon":214,"group":152},"\u002Fdocs\u002Fvite\u002Fcron\u002Fvercel","Generate Vercel cron config from discovered crons.",{"title":66,"path":386,"description":387},"\u002Fdocs\u002Fvite\u002Fcron\u002Ftroubleshooting","Diagnose discovery, schedule, and provider issues across the supported cron backends.",{"title":389,"path":390,"description":391,"icon":392,"children":393},"Browser","\u002Fdocs\u002Fvite\u002Fbrowser","Run named browser automations against Playwright, Browserbase, or Cloudflare Browser Rendering.","i-lucide-monitor-play",[394,397,400,404,407,412,416],{"title":37,"path":395,"description":396},"\u002Fdocs\u002Fvite\u002Fbrowser\u002Fquickstart","Run a first browser automation through the Playwright provider.",{"title":41,"path":398,"description":399},"\u002Fdocs\u002Fvite\u002Fbrowser\u002Fruntime-api","Reference for defineBrowser, createBrowser, runBrowser, getBrowser, and the core Browser types.",{"title":401,"path":402,"description":403},"When to use Browser","\u002Fdocs\u002Fvite\u002Fbrowser\u002Fwhen-to-use","Decide when Browser is the right primitive compared with provider-specific code, Sandbox, or inline automation.",{"title":148,"path":405,"description":406,"icon":151,"group":152},"\u002Fdocs\u002Fvite\u002Fbrowser\u002Fcloudflare","Configure Cloudflare Browser Rendering through the official `cloudflare` package.",{"title":408,"path":409,"description":410,"icon":411,"group":152},"Browserbase","\u002Fdocs\u002Fvite\u002Fbrowser\u002Fbrowserbase","Configure Browserbase for managed CDP sessions and session-aware browser calls.","i-lucide-orbit",{"title":413,"path":414,"description":415,"icon":392,"group":152},"Playwright","\u002Fdocs\u002Fvite\u002Fbrowser\u002Fplaywright","Configure remote Playwright browser sessions over a WebSocket endpoint.",{"title":66,"path":417,"description":418},"\u002Fdocs\u002Fvite\u002Fbrowser\u002Ftroubleshooting","Diagnose discovery, connection, and execution problems across the supported browser providers.",{"title":420,"path":421,"description":422,"icon":423,"children":424},"Sandbox","\u002Fdocs\u002Fvite\u002Fsandbox","Run isolated sandboxes on Cloudflare Durable Objects, Cloudflare Dynamic Workers, Vercel, Deno, Docker, or locally.","i-lucide-box",[425,428,431,435,439,442,446,449,453,456,461,466,471,474],{"title":37,"path":426,"description":427},"\u002Fdocs\u002Fvite\u002Fsandbox\u002Fquickstart","Get a first sandbox working locally with the local provider.",{"title":41,"path":429,"description":430},"\u002Fdocs\u002Fvite\u002Fsandbox\u002Fruntime-api","Reference for defineSandbox, createSandbox, runSandbox, readValidatedPayload, and the core Sandbox types.",{"title":432,"path":433,"description":434},"When to use Sandbox","\u002Fdocs\u002Fvite\u002Fsandbox\u002Fwhen-to-use","Decide when Sandbox is the right primitive compared with Queue, Workflow, or inline execution.",{"title":436,"path":437,"description":438,"group":52},"Run a sandbox","\u002Fdocs\u002Fvite\u002Fsandbox\u002Fguides\u002Frun-a-sandbox","Execute a named sandbox and handle the returned result safely.",{"title":191,"path":440,"description":441,"group":52},"\u002Fdocs\u002Fvite\u002Fsandbox\u002Fguides\u002Fvalidate-payloads","Validate and normalize payloads before you execute a sandbox.",{"title":443,"path":444,"description":445,"group":52},"Reuse a sandbox","\u002Fdocs\u002Fvite\u002Fsandbox\u002Fguides\u002Freuse-a-sandbox","Control sandbox identity with sandboxId when the provider supports sandbox reuse.",{"title":148,"path":447,"description":448,"icon":151},"\u002Fdocs\u002Fvite\u002Fsandbox\u002Fproviders\u002Fcloudflare","Configure Cloudflare Sandbox on top of Durable Objects.",{"title":450,"path":451,"description":452,"icon":151},"Cloudflare Dynamic","\u002Fdocs\u002Fvite\u002Fsandbox\u002Fproviders\u002Fcloudflare-dynamic","Configure Cloudflare Dynamic Workers with the Worker Loader API.",{"title":211,"path":454,"description":455,"icon":214},"\u002Fdocs\u002Fvite\u002Fsandbox\u002Fproviders\u002Fvercel","Configure Vercel Sandbox and run isolated sandboxes on Vercel.",{"title":457,"path":458,"description":459,"icon":460},"Deno","\u002Fdocs\u002Fvite\u002Fsandbox\u002Fproviders\u002Fdeno","Configure Deno Sandbox and run isolated sandboxes on Deno Deploy.","i-simple-icons-deno",{"title":462,"path":463,"description":464,"icon":465},"Docker","\u002Fdocs\u002Fvite\u002Fsandbox\u002Fproviders\u002Fdocker","Configure Docker Sandbox and run isolated sandboxes locally.","i-simple-icons-docker",{"title":467,"path":468,"description":469,"icon":470},"Local","\u002Fdocs\u002Fvite\u002Fsandbox\u002Fproviders\u002Flocal","Run sandboxes locally with OS-level isolation using platform primitives.","i-lucide-monitor",{"title":66,"path":472,"description":473},"\u002Fdocs\u002Fvite\u002Fsandbox\u002Ftroubleshooting","Diagnose common Sandbox setup and runtime problems across local and hosted providers.",{"title":70,"path":475,"description":476},"\u002Fdocs\u002Fvite\u002Fsandbox\u002Fplayground","Explore the existing Sandbox playground app and the files that show the end-to-end runtime flow.",{"title":478,"path":479,"description":480,"icon":481,"children":482},"Analytics","\u002Fdocs\u002Fvite\u002Fanalytics","Integrate explicit analytics backends with a small shared runtime API.","i-lucide-megaphone",[483,486,489,493,496,499],{"title":37,"path":484,"description":485},"\u002Fdocs\u002Fvite\u002Fanalytics\u002Fquickstart","Send a first analytics event through the Vercel provider.",{"title":41,"path":487,"description":488},"\u002Fdocs\u002Fvite\u002Fanalytics\u002Fruntime-api","Reference for defineTrack, track, page, identify, alias, group, reset, and getAnalytics.",{"title":490,"path":491,"description":492},"When to use Analytics","\u002Fdocs\u002Fvite\u002Fanalytics\u002Fwhen-to-use","Decide when Analytics is the right primitive compared with direct SDK calls or app-specific event logging.",{"title":211,"path":494,"description":495,"icon":214,"group":152},"\u002Fdocs\u002Fvite\u002Fanalytics\u002Fvercel","Configure Vercel Analytics through the official SDK and keep a small portable runtime API.",{"title":148,"path":497,"description":498,"icon":151,"group":152},"\u002Fdocs\u002Fvite\u002Fanalytics\u002Fcloudflare","Configure first-party analytics ingestion on Cloudflare and query a semantic event shape on top of Analytics Engine slots.",{"title":66,"path":500,"description":501},"\u002Fdocs\u002Fvite\u002Fanalytics\u002Ftroubleshooting","Diagnose discovery, provider, and ingestion problems across the supported analytics backends.",{"title":503,"path":504,"children":505},"Nitro","\u002Fdocs\u002Fnitro",[506,515,536,551,568,585,620,635,658,687,704,721,752],{"title":13,"path":507,"description":15,"icon":16,"children":508},"\u002Fdocs\u002Fnitro\u002Fgetting-started",[509,511,513],{"title":19,"path":510,"description":21},"\u002Fdocs\u002Fnitro\u002Fgetting-started\u002Fchoose-a-package",{"title":23,"path":512,"description":25},"\u002Fdocs\u002Fnitro\u002Fgetting-started\u002Fentrypoints",{"title":27,"path":514,"description":29},"\u002Fdocs\u002Fnitro\u002Fgetting-started\u002Farchitecture",{"title":31,"path":516,"description":33,"icon":34,"children":517},"\u002Fdocs\u002Fnitro\u002Fdatabase",[518,520,522,524,526,528,530,532,534],{"title":37,"path":519,"description":39},"\u002Fdocs\u002Fnitro\u002Fdatabase\u002Fquickstart",{"title":41,"path":521,"description":43},"\u002Fdocs\u002Fnitro\u002Fdatabase\u002Fruntime-api",{"title":45,"path":523,"description":47},"\u002Fdocs\u002Fnitro\u002Fdatabase\u002Fwhen-to-use",{"title":49,"path":525,"description":51,"group":52},"\u002Fdocs\u002Fnitro\u002Fdatabase\u002Fdrizzle",{"title":54,"path":527,"description":56,"group":52},"\u002Fdocs\u002Fnitro\u002Fdatabase\u002Fprisma",{"title":58,"path":529,"description":60,"group":52},"\u002Fdocs\u002Fnitro\u002Fdatabase\u002Fmigrations",{"title":62,"path":531,"description":64,"group":52},"\u002Fdocs\u002Fnitro\u002Fdatabase\u002Fplatform-notes",{"title":66,"path":533,"description":68},"\u002Fdocs\u002Fnitro\u002Fdatabase\u002Ftroubleshooting",{"title":70,"path":535,"description":72},"\u002Fdocs\u002Fnitro\u002Fdatabase\u002Fplayground",{"title":74,"path":537,"description":76,"icon":77,"children":538},"\u002Fdocs\u002Fnitro\u002Fkv",[539,541,543,545,547,549],{"title":37,"path":540,"description":81},"\u002Fdocs\u002Fnitro\u002Fkv\u002Fquickstart",{"title":41,"path":542,"description":84},"\u002Fdocs\u002Fnitro\u002Fkv\u002Fruntime-api",{"title":86,"path":544,"description":88},"\u002Fdocs\u002Fnitro\u002Fkv\u002Fwhen-to-use",{"title":90,"path":546,"description":92,"icon":93,"group":52},"\u002Fdocs\u002Fnitro\u002Fkv\u002Fusage",{"title":66,"path":548,"description":96},"\u002Fdocs\u002Fnitro\u002Fkv\u002Ftroubleshooting",{"title":70,"path":550,"description":99},"\u002Fdocs\u002Fnitro\u002Fkv\u002Fplayground",{"title":101,"path":552,"description":103,"icon":104,"children":553},"\u002Fdocs\u002Fnitro\u002Fblob",[554,556,558,560,562,564,566],{"title":37,"path":555,"description":108},"\u002Fdocs\u002Fnitro\u002Fblob\u002Fquickstart",{"title":41,"path":557,"description":111},"\u002Fdocs\u002Fnitro\u002Fblob\u002Fruntime-api",{"title":113,"path":559,"description":115},"\u002Fdocs\u002Fnitro\u002Fblob\u002Fwhen-to-use",{"title":117,"path":561,"description":119,"icon":120,"group":52},"\u002Fdocs\u002Fnitro\u002Fblob\u002Fupload",{"title":122,"path":563,"description":124,"icon":93,"group":52},"\u002Fdocs\u002Fnitro\u002Fblob\u002Fusage",{"title":66,"path":565,"description":127},"\u002Fdocs\u002Fnitro\u002Fblob\u002Ftroubleshooting",{"title":70,"path":567,"description":130},"\u002Fdocs\u002Fnitro\u002Fblob\u002Fplayground",{"title":132,"path":569,"description":134,"icon":135,"children":570},"\u002Fdocs\u002Fnitro\u002Fvector",[571,573,575,577,579,581,583],{"title":37,"path":572,"description":139},"\u002Fdocs\u002Fnitro\u002Fvector\u002Fquickstart",{"title":41,"path":574,"description":142},"\u002Fdocs\u002Fnitro\u002Fvector\u002Fruntime-api",{"title":144,"path":576,"description":146},"\u002Fdocs\u002Fnitro\u002Fvector\u002Fwhen-to-use",{"title":148,"path":578,"description":150,"icon":151,"group":152},"\u002Fdocs\u002Fnitro\u002Fvector\u002Fcloudflare",{"title":154,"path":580,"description":156,"icon":157,"group":152},"\u002Fdocs\u002Fnitro\u002Fvector\u002Fpostgres",{"title":159,"path":582,"description":161,"icon":162,"group":152},"\u002Fdocs\u002Fnitro\u002Fvector\u002Fupstash",{"title":66,"path":584,"description":165},"\u002Fdocs\u002Fnitro\u002Fvector\u002Ftroubleshooting",{"title":167,"path":586,"description":169,"icon":170,"children":587},"\u002Fdocs\u002Fnitro\u002Fqueue",[588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618],{"title":37,"path":589,"description":174},"\u002Fdocs\u002Fnitro\u002Fqueue\u002Fquickstart",{"title":41,"path":591,"description":177},"\u002Fdocs\u002Fnitro\u002Fqueue\u002Fruntime-api",{"title":179,"path":593,"description":181},"\u002Fdocs\u002Fnitro\u002Fqueue\u002Fwhen-to-use",{"title":183,"path":595,"description":185,"group":52},"\u002Fdocs\u002Fnitro\u002Fqueue\u002Fguides\u002Fsend-a-job",{"title":187,"path":597,"description":189,"group":52},"\u002Fdocs\u002Fnitro\u002Fqueue\u002Fguides\u002Fdefer-after-response",{"title":191,"path":599,"description":193,"group":52},"\u002Fdocs\u002Fnitro\u002Fqueue\u002Fguides\u002Fvalidate-payloads",{"title":195,"path":601,"description":197,"group":52},"\u002Fdocs\u002Fnitro\u002Fqueue\u002Fguides\u002Flocal-development",{"title":199,"path":603,"description":201,"group":52},"\u002Fdocs\u002Fnitro\u002Fqueue\u002Fguides\u002Fnative-handles",{"title":203,"path":605,"description":205,"icon":206,"group":152},"\u002Fdocs\u002Fnitro\u002Fqueue\u002Fproviders\u002Fplatformatic",{"title":148,"path":607,"description":209,"icon":151,"group":152},"\u002Fdocs\u002Fnitro\u002Fqueue\u002Fproviders\u002Fcloudflare",{"title":211,"path":609,"description":213,"icon":214,"group":152},"\u002Fdocs\u002Fnitro\u002Fqueue\u002Fproviders\u002Fvercel",{"title":216,"path":611,"description":218,"icon":219,"group":152},"\u002Fdocs\u002Fnitro\u002Fqueue\u002Fproviders\u002Fnetlify",{"title":221,"path":613,"description":223,"icon":162,"group":152},"\u002Fdocs\u002Fnitro\u002Fqueue\u002Fproviders\u002Fupstash-qstash",{"title":225,"path":615,"description":227,"icon":228,"group":152},"\u002Fdocs\u002Fnitro\u002Fqueue\u002Fproviders\u002Fmemory",{"title":66,"path":617,"description":231},"\u002Fdocs\u002Fnitro\u002Fqueue\u002Ftroubleshooting",{"title":70,"path":619,"description":234},"\u002Fdocs\u002Fnitro\u002Fqueue\u002Fplayground",{"title":236,"path":621,"description":238,"icon":239,"children":622},"\u002Fdocs\u002Fnitro\u002Fcache",[623,625,627,629,631,633],{"title":37,"path":624,"description":243},"\u002Fdocs\u002Fnitro\u002Fcache\u002Fquickstart",{"title":41,"path":626,"description":246},"\u002Fdocs\u002Fnitro\u002Fcache\u002Fruntime-api",{"title":248,"path":628,"description":250},"\u002Fdocs\u002Fnitro\u002Fcache\u002Fwhen-to-use",{"title":90,"path":630,"description":253,"icon":93,"group":52},"\u002Fdocs\u002Fnitro\u002Fcache\u002Fusage",{"title":66,"path":632,"description":256},"\u002Fdocs\u002Fnitro\u002Fcache\u002Ftroubleshooting",{"title":70,"path":634,"description":259},"\u002Fdocs\u002Fnitro\u002Fcache\u002Fplayground",{"title":261,"path":636,"description":263,"icon":264,"children":637},"\u002Fdocs\u002Fnitro\u002Femail",[638,640,642,644,646,648,650,652,654,656],{"title":37,"path":639,"description":268},"\u002Fdocs\u002Fnitro\u002Femail\u002Fquickstart",{"title":41,"path":641,"description":271},"\u002Fdocs\u002Fnitro\u002Femail\u002Fruntime-api",{"title":273,"path":643,"description":275},"\u002Fdocs\u002Fnitro\u002Femail\u002Fwhen-to-use",{"title":277,"path":645,"description":279,"icon":280,"group":52},"\u002Fdocs\u002Fnitro\u002Femail\u002Ffrontmatter",{"title":282,"path":647,"description":284,"icon":285,"group":52},"\u002Fdocs\u002Fnitro\u002Femail\u002Finput-schemas",{"title":287,"path":649,"description":289,"icon":290,"group":52},"\u002Fdocs\u002Fnitro\u002Femail\u002Fi18n",{"title":292,"path":651,"description":294,"icon":295,"group":152},"\u002Fdocs\u002Fnitro\u002Femail\u002Fresend",{"title":297,"path":653,"description":299,"icon":300,"group":152},"\u002Fdocs\u002Fnitro\u002Femail\u002Fsendgrid",{"title":302,"path":655,"description":304,"icon":305,"group":152},"\u002Fdocs\u002Fnitro\u002Femail\u002Fpostmark",{"title":66,"path":657,"description":308},"\u002Fdocs\u002Fnitro\u002Femail\u002Ftroubleshooting",{"title":310,"path":659,"description":312,"icon":313,"children":660},"\u002Fdocs\u002Fnitro\u002Fworkflow",[661,663,665,667,669,671,673,675,677,679,681,683,685],{"title":37,"path":662,"description":317},"\u002Fdocs\u002Fnitro\u002Fworkflow\u002Fquickstart",{"title":41,"path":664,"description":320},"\u002Fdocs\u002Fnitro\u002Fworkflow\u002Fruntime-api",{"title":322,"path":666,"description":324},"\u002Fdocs\u002Fnitro\u002Fworkflow\u002Fwhen-to-use",{"title":326,"path":668,"description":328,"group":52},"\u002Fdocs\u002Fnitro\u002Fworkflow\u002Fguides\u002Fstart-a-run",{"title":330,"path":670,"description":332,"group":52},"\u002Fdocs\u002Fnitro\u002Fworkflow\u002Fguides\u002Fcheck-a-run",{"title":187,"path":672,"description":335,"group":52},"\u002Fdocs\u002Fnitro\u002Fworkflow\u002Fguides\u002Fdefer-after-response",{"title":191,"path":674,"description":338,"group":52},"\u002Fdocs\u002Fnitro\u002Fworkflow\u002Fguides\u002Fvalidate-payloads",{"title":148,"path":676,"description":341,"icon":151},"\u002Fdocs\u002Fnitro\u002Fworkflow\u002Fproviders\u002Fcloudflare",{"title":211,"path":678,"description":344,"icon":214},"\u002Fdocs\u002Fnitro\u002Fworkflow\u002Fproviders\u002Fvercel",{"title":346,"path":680,"description":348,"icon":313},"\u002Fdocs\u002Fnitro\u002Fworkflow\u002Fproviders\u002Fopenworkflow",{"title":216,"path":682,"description":351,"icon":219},"\u002Fdocs\u002Fnitro\u002Fworkflow\u002Fproviders\u002Fnetlify",{"title":66,"path":684,"description":354},"\u002Fdocs\u002Fnitro\u002Fworkflow\u002Ftroubleshooting",{"title":70,"path":686,"description":357},"\u002Fdocs\u002Fnitro\u002Fworkflow\u002Fplayground",{"title":359,"path":688,"description":361,"icon":362,"children":689},"\u002Fdocs\u002Fnitro\u002Fcron",[690,692,694,696,698,700,702],{"title":37,"path":691,"description":366},"\u002Fdocs\u002Fnitro\u002Fcron\u002Fquickstart",{"title":41,"path":693,"description":369},"\u002Fdocs\u002Fnitro\u002Fcron\u002Fruntime-api",{"title":371,"path":695,"description":373},"\u002Fdocs\u002Fnitro\u002Fcron\u002Fwhen-to-use",{"title":375,"path":697,"description":377,"icon":378,"group":152},"\u002Fdocs\u002Fnitro\u002Fcron\u002Fnode",{"title":148,"path":699,"description":381,"icon":151,"group":152},"\u002Fdocs\u002Fnitro\u002Fcron\u002Fcloudflare",{"title":211,"path":701,"description":384,"icon":214,"group":152},"\u002Fdocs\u002Fnitro\u002Fcron\u002Fvercel",{"title":66,"path":703,"description":387},"\u002Fdocs\u002Fnitro\u002Fcron\u002Ftroubleshooting",{"title":389,"path":705,"description":391,"icon":392,"children":706},"\u002Fdocs\u002Fnitro\u002Fbrowser",[707,709,711,713,715,717,719],{"title":37,"path":708,"description":396},"\u002Fdocs\u002Fnitro\u002Fbrowser\u002Fquickstart",{"title":41,"path":710,"description":399},"\u002Fdocs\u002Fnitro\u002Fbrowser\u002Fruntime-api",{"title":401,"path":712,"description":403},"\u002Fdocs\u002Fnitro\u002Fbrowser\u002Fwhen-to-use",{"title":148,"path":714,"description":406,"icon":151,"group":152},"\u002Fdocs\u002Fnitro\u002Fbrowser\u002Fcloudflare",{"title":408,"path":716,"description":410,"icon":411,"group":152},"\u002Fdocs\u002Fnitro\u002Fbrowser\u002Fbrowserbase",{"title":413,"path":718,"description":415,"icon":392,"group":152},"\u002Fdocs\u002Fnitro\u002Fbrowser\u002Fplaywright",{"title":66,"path":720,"description":418},"\u002Fdocs\u002Fnitro\u002Fbrowser\u002Ftroubleshooting",{"title":420,"path":722,"description":422,"icon":423,"children":723},"\u002Fdocs\u002Fnitro\u002Fsandbox",[724,726,728,730,732,734,736,738,740,742,744,746,748,750],{"title":37,"path":725,"description":427},"\u002Fdocs\u002Fnitro\u002Fsandbox\u002Fquickstart",{"title":41,"path":727,"description":430},"\u002Fdocs\u002Fnitro\u002Fsandbox\u002Fruntime-api",{"title":432,"path":729,"description":434},"\u002Fdocs\u002Fnitro\u002Fsandbox\u002Fwhen-to-use",{"title":436,"path":731,"description":438,"group":52},"\u002Fdocs\u002Fnitro\u002Fsandbox\u002Fguides\u002Frun-a-sandbox",{"title":191,"path":733,"description":441,"group":52},"\u002Fdocs\u002Fnitro\u002Fsandbox\u002Fguides\u002Fvalidate-payloads",{"title":443,"path":735,"description":445,"group":52},"\u002Fdocs\u002Fnitro\u002Fsandbox\u002Fguides\u002Freuse-a-sandbox",{"title":148,"path":737,"description":448,"icon":151},"\u002Fdocs\u002Fnitro\u002Fsandbox\u002Fproviders\u002Fcloudflare",{"title":450,"path":739,"description":452,"icon":151},"\u002Fdocs\u002Fnitro\u002Fsandbox\u002Fproviders\u002Fcloudflare-dynamic",{"title":211,"path":741,"description":455,"icon":214},"\u002Fdocs\u002Fnitro\u002Fsandbox\u002Fproviders\u002Fvercel",{"title":457,"path":743,"description":459,"icon":460},"\u002Fdocs\u002Fnitro\u002Fsandbox\u002Fproviders\u002Fdeno",{"title":462,"path":745,"description":464,"icon":465},"\u002Fdocs\u002Fnitro\u002Fsandbox\u002Fproviders\u002Fdocker",{"title":467,"path":747,"description":469,"icon":470},"\u002Fdocs\u002Fnitro\u002Fsandbox\u002Fproviders\u002Flocal",{"title":66,"path":749,"description":473},"\u002Fdocs\u002Fnitro\u002Fsandbox\u002Ftroubleshooting",{"title":70,"path":751,"description":476},"\u002Fdocs\u002Fnitro\u002Fsandbox\u002Fplayground",{"title":478,"path":753,"description":480,"icon":481,"children":754},"\u002Fdocs\u002Fnitro\u002Fanalytics",[755,757,759,761,763,765],{"title":37,"path":756,"description":485},"\u002Fdocs\u002Fnitro\u002Fanalytics\u002Fquickstart",{"title":41,"path":758,"description":488},"\u002Fdocs\u002Fnitro\u002Fanalytics\u002Fruntime-api",{"title":490,"path":760,"description":492},"\u002Fdocs\u002Fnitro\u002Fanalytics\u002Fwhen-to-use",{"title":211,"path":762,"description":495,"icon":214,"group":152},"\u002Fdocs\u002Fnitro\u002Fanalytics\u002Fvercel",{"title":148,"path":764,"description":498,"icon":151,"group":152},"\u002Fdocs\u002Fnitro\u002Fanalytics\u002Fcloudflare",{"title":66,"path":766,"description":501},"\u002Fdocs\u002Fnitro\u002Fanalytics\u002Ftroubleshooting",{"title":768,"path":769,"children":770},"Nuxt","\u002Fdocs\u002Fnuxt",[771,780,801,816,833,850,885,900,923,952,969,986,1017],{"title":13,"path":772,"description":15,"icon":16,"children":773},"\u002Fdocs\u002Fnuxt\u002Fgetting-started",[774,776,778],{"title":19,"path":775,"description":21},"\u002Fdocs\u002Fnuxt\u002Fgetting-started\u002Fchoose-a-package",{"title":23,"path":777,"description":25},"\u002Fdocs\u002Fnuxt\u002Fgetting-started\u002Fentrypoints",{"title":27,"path":779,"description":29},"\u002Fdocs\u002Fnuxt\u002Fgetting-started\u002Farchitecture",{"title":31,"path":781,"description":33,"icon":34,"children":782},"\u002Fdocs\u002Fnuxt\u002Fdatabase",[783,785,787,789,791,793,795,797,799],{"title":37,"path":784,"description":39},"\u002Fdocs\u002Fnuxt\u002Fdatabase\u002Fquickstart",{"title":41,"path":786,"description":43},"\u002Fdocs\u002Fnuxt\u002Fdatabase\u002Fruntime-api",{"title":45,"path":788,"description":47},"\u002Fdocs\u002Fnuxt\u002Fdatabase\u002Fwhen-to-use",{"title":49,"path":790,"description":51,"group":52},"\u002Fdocs\u002Fnuxt\u002Fdatabase\u002Fdrizzle",{"title":54,"path":792,"description":56,"group":52},"\u002Fdocs\u002Fnuxt\u002Fdatabase\u002Fprisma",{"title":58,"path":794,"description":60,"group":52},"\u002Fdocs\u002Fnuxt\u002Fdatabase\u002Fmigrations",{"title":62,"path":796,"description":64,"group":52},"\u002Fdocs\u002Fnuxt\u002Fdatabase\u002Fplatform-notes",{"title":66,"path":798,"description":68},"\u002Fdocs\u002Fnuxt\u002Fdatabase\u002Ftroubleshooting",{"title":70,"path":800,"description":72},"\u002Fdocs\u002Fnuxt\u002Fdatabase\u002Fplayground",{"title":74,"path":802,"description":76,"icon":77,"children":803},"\u002Fdocs\u002Fnuxt\u002Fkv",[804,806,808,810,812,814],{"title":37,"path":805,"description":81},"\u002Fdocs\u002Fnuxt\u002Fkv\u002Fquickstart",{"title":41,"path":807,"description":84},"\u002Fdocs\u002Fnuxt\u002Fkv\u002Fruntime-api",{"title":86,"path":809,"description":88},"\u002Fdocs\u002Fnuxt\u002Fkv\u002Fwhen-to-use",{"title":90,"path":811,"description":92,"icon":93,"group":52},"\u002Fdocs\u002Fnuxt\u002Fkv\u002Fusage",{"title":66,"path":813,"description":96},"\u002Fdocs\u002Fnuxt\u002Fkv\u002Ftroubleshooting",{"title":70,"path":815,"description":99},"\u002Fdocs\u002Fnuxt\u002Fkv\u002Fplayground",{"title":101,"path":817,"description":103,"icon":104,"children":818},"\u002Fdocs\u002Fnuxt\u002Fblob",[819,821,823,825,827,829,831],{"title":37,"path":820,"description":108},"\u002Fdocs\u002Fnuxt\u002Fblob\u002Fquickstart",{"title":41,"path":822,"description":111},"\u002Fdocs\u002Fnuxt\u002Fblob\u002Fruntime-api",{"title":113,"path":824,"description":115},"\u002Fdocs\u002Fnuxt\u002Fblob\u002Fwhen-to-use",{"title":117,"path":826,"description":119,"icon":120,"group":52},"\u002Fdocs\u002Fnuxt\u002Fblob\u002Fupload",{"title":122,"path":828,"description":124,"icon":93,"group":52},"\u002Fdocs\u002Fnuxt\u002Fblob\u002Fusage",{"title":66,"path":830,"description":127},"\u002Fdocs\u002Fnuxt\u002Fblob\u002Ftroubleshooting",{"title":70,"path":832,"description":130},"\u002Fdocs\u002Fnuxt\u002Fblob\u002Fplayground",{"title":132,"path":834,"description":134,"icon":135,"children":835},"\u002Fdocs\u002Fnuxt\u002Fvector",[836,838,840,842,844,846,848],{"title":37,"path":837,"description":139},"\u002Fdocs\u002Fnuxt\u002Fvector\u002Fquickstart",{"title":41,"path":839,"description":142},"\u002Fdocs\u002Fnuxt\u002Fvector\u002Fruntime-api",{"title":144,"path":841,"description":146},"\u002Fdocs\u002Fnuxt\u002Fvector\u002Fwhen-to-use",{"title":148,"path":843,"description":150,"icon":151,"group":152},"\u002Fdocs\u002Fnuxt\u002Fvector\u002Fcloudflare",{"title":154,"path":845,"description":156,"icon":157,"group":152},"\u002Fdocs\u002Fnuxt\u002Fvector\u002Fpostgres",{"title":159,"path":847,"description":161,"icon":162,"group":152},"\u002Fdocs\u002Fnuxt\u002Fvector\u002Fupstash",{"title":66,"path":849,"description":165},"\u002Fdocs\u002Fnuxt\u002Fvector\u002Ftroubleshooting",{"title":167,"path":851,"description":169,"icon":170,"children":852},"\u002Fdocs\u002Fnuxt\u002Fqueue",[853,855,857,859,861,863,865,867,869,871,873,875,877,879,881,883],{"title":37,"path":854,"description":174},"\u002Fdocs\u002Fnuxt\u002Fqueue\u002Fquickstart",{"title":41,"path":856,"description":177},"\u002Fdocs\u002Fnuxt\u002Fqueue\u002Fruntime-api",{"title":179,"path":858,"description":181},"\u002Fdocs\u002Fnuxt\u002Fqueue\u002Fwhen-to-use",{"title":183,"path":860,"description":185,"group":52},"\u002Fdocs\u002Fnuxt\u002Fqueue\u002Fguides\u002Fsend-a-job",{"title":187,"path":862,"description":189,"group":52},"\u002Fdocs\u002Fnuxt\u002Fqueue\u002Fguides\u002Fdefer-after-response",{"title":191,"path":864,"description":193,"group":52},"\u002Fdocs\u002Fnuxt\u002Fqueue\u002Fguides\u002Fvalidate-payloads",{"title":195,"path":866,"description":197,"group":52},"\u002Fdocs\u002Fnuxt\u002Fqueue\u002Fguides\u002Flocal-development",{"title":199,"path":868,"description":201,"group":52},"\u002Fdocs\u002Fnuxt\u002Fqueue\u002Fguides\u002Fnative-handles",{"title":203,"path":870,"description":205,"icon":206,"group":152},"\u002Fdocs\u002Fnuxt\u002Fqueue\u002Fproviders\u002Fplatformatic",{"title":148,"path":872,"description":209,"icon":151,"group":152},"\u002Fdocs\u002Fnuxt\u002Fqueue\u002Fproviders\u002Fcloudflare",{"title":211,"path":874,"description":213,"icon":214,"group":152},"\u002Fdocs\u002Fnuxt\u002Fqueue\u002Fproviders\u002Fvercel",{"title":216,"path":876,"description":218,"icon":219,"group":152},"\u002Fdocs\u002Fnuxt\u002Fqueue\u002Fproviders\u002Fnetlify",{"title":221,"path":878,"description":223,"icon":162,"group":152},"\u002Fdocs\u002Fnuxt\u002Fqueue\u002Fproviders\u002Fupstash-qstash",{"title":225,"path":880,"description":227,"icon":228,"group":152},"\u002Fdocs\u002Fnuxt\u002Fqueue\u002Fproviders\u002Fmemory",{"title":66,"path":882,"description":231},"\u002Fdocs\u002Fnuxt\u002Fqueue\u002Ftroubleshooting",{"title":70,"path":884,"description":234},"\u002Fdocs\u002Fnuxt\u002Fqueue\u002Fplayground",{"title":236,"path":886,"description":238,"icon":239,"children":887},"\u002Fdocs\u002Fnuxt\u002Fcache",[888,890,892,894,896,898],{"title":37,"path":889,"description":243},"\u002Fdocs\u002Fnuxt\u002Fcache\u002Fquickstart",{"title":41,"path":891,"description":246},"\u002Fdocs\u002Fnuxt\u002Fcache\u002Fruntime-api",{"title":248,"path":893,"description":250},"\u002Fdocs\u002Fnuxt\u002Fcache\u002Fwhen-to-use",{"title":90,"path":895,"description":253,"icon":93,"group":52},"\u002Fdocs\u002Fnuxt\u002Fcache\u002Fusage",{"title":66,"path":897,"description":256},"\u002Fdocs\u002Fnuxt\u002Fcache\u002Ftroubleshooting",{"title":70,"path":899,"description":259},"\u002Fdocs\u002Fnuxt\u002Fcache\u002Fplayground",{"title":261,"path":901,"description":263,"icon":264,"children":902},"\u002Fdocs\u002Fnuxt\u002Femail",[903,905,907,909,911,913,915,917,919,921],{"title":37,"path":904,"description":268},"\u002Fdocs\u002Fnuxt\u002Femail\u002Fquickstart",{"title":41,"path":906,"description":271},"\u002Fdocs\u002Fnuxt\u002Femail\u002Fruntime-api",{"title":273,"path":908,"description":275},"\u002Fdocs\u002Fnuxt\u002Femail\u002Fwhen-to-use",{"title":277,"path":910,"description":279,"icon":280,"group":52},"\u002Fdocs\u002Fnuxt\u002Femail\u002Ffrontmatter",{"title":282,"path":912,"description":284,"icon":285,"group":52},"\u002Fdocs\u002Fnuxt\u002Femail\u002Finput-schemas",{"title":287,"path":914,"description":289,"icon":290,"group":52},"\u002Fdocs\u002Fnuxt\u002Femail\u002Fi18n",{"title":292,"path":916,"description":294,"icon":295,"group":152},"\u002Fdocs\u002Fnuxt\u002Femail\u002Fresend",{"title":297,"path":918,"description":299,"icon":300,"group":152},"\u002Fdocs\u002Fnuxt\u002Femail\u002Fsendgrid",{"title":302,"path":920,"description":304,"icon":305,"group":152},"\u002Fdocs\u002Fnuxt\u002Femail\u002Fpostmark",{"title":66,"path":922,"description":308},"\u002Fdocs\u002Fnuxt\u002Femail\u002Ftroubleshooting",{"title":310,"path":924,"description":312,"icon":313,"children":925},"\u002Fdocs\u002Fnuxt\u002Fworkflow",[926,928,930,932,934,936,938,940,942,944,946,948,950],{"title":37,"path":927,"description":317},"\u002Fdocs\u002Fnuxt\u002Fworkflow\u002Fquickstart",{"title":41,"path":929,"description":320},"\u002Fdocs\u002Fnuxt\u002Fworkflow\u002Fruntime-api",{"title":322,"path":931,"description":324},"\u002Fdocs\u002Fnuxt\u002Fworkflow\u002Fwhen-to-use",{"title":326,"path":933,"description":328,"group":52},"\u002Fdocs\u002Fnuxt\u002Fworkflow\u002Fguides\u002Fstart-a-run",{"title":330,"path":935,"description":332,"group":52},"\u002Fdocs\u002Fnuxt\u002Fworkflow\u002Fguides\u002Fcheck-a-run",{"title":187,"path":937,"description":335,"group":52},"\u002Fdocs\u002Fnuxt\u002Fworkflow\u002Fguides\u002Fdefer-after-response",{"title":191,"path":939,"description":338,"group":52},"\u002Fdocs\u002Fnuxt\u002Fworkflow\u002Fguides\u002Fvalidate-payloads",{"title":148,"path":941,"description":341,"icon":151},"\u002Fdocs\u002Fnuxt\u002Fworkflow\u002Fproviders\u002Fcloudflare",{"title":211,"path":943,"description":344,"icon":214},"\u002Fdocs\u002Fnuxt\u002Fworkflow\u002Fproviders\u002Fvercel",{"title":346,"path":945,"description":348,"icon":313},"\u002Fdocs\u002Fnuxt\u002Fworkflow\u002Fproviders\u002Fopenworkflow",{"title":216,"path":947,"description":351,"icon":219},"\u002Fdocs\u002Fnuxt\u002Fworkflow\u002Fproviders\u002Fnetlify",{"title":66,"path":949,"description":354},"\u002Fdocs\u002Fnuxt\u002Fworkflow\u002Ftroubleshooting",{"title":70,"path":951,"description":357},"\u002Fdocs\u002Fnuxt\u002Fworkflow\u002Fplayground",{"title":359,"path":953,"description":361,"icon":362,"children":954},"\u002Fdocs\u002Fnuxt\u002Fcron",[955,957,959,961,963,965,967],{"title":37,"path":956,"description":366},"\u002Fdocs\u002Fnuxt\u002Fcron\u002Fquickstart",{"title":41,"path":958,"description":369},"\u002Fdocs\u002Fnuxt\u002Fcron\u002Fruntime-api",{"title":371,"path":960,"description":373},"\u002Fdocs\u002Fnuxt\u002Fcron\u002Fwhen-to-use",{"title":375,"path":962,"description":377,"icon":378,"group":152},"\u002Fdocs\u002Fnuxt\u002Fcron\u002Fnode",{"title":148,"path":964,"description":381,"icon":151,"group":152},"\u002Fdocs\u002Fnuxt\u002Fcron\u002Fcloudflare",{"title":211,"path":966,"description":384,"icon":214,"group":152},"\u002Fdocs\u002Fnuxt\u002Fcron\u002Fvercel",{"title":66,"path":968,"description":387},"\u002Fdocs\u002Fnuxt\u002Fcron\u002Ftroubleshooting",{"title":389,"path":970,"description":391,"icon":392,"children":971},"\u002Fdocs\u002Fnuxt\u002Fbrowser",[972,974,976,978,980,982,984],{"title":37,"path":973,"description":396},"\u002Fdocs\u002Fnuxt\u002Fbrowser\u002Fquickstart",{"title":41,"path":975,"description":399},"\u002Fdocs\u002Fnuxt\u002Fbrowser\u002Fruntime-api",{"title":401,"path":977,"description":403},"\u002Fdocs\u002Fnuxt\u002Fbrowser\u002Fwhen-to-use",{"title":148,"path":979,"description":406,"icon":151,"group":152},"\u002Fdocs\u002Fnuxt\u002Fbrowser\u002Fcloudflare",{"title":408,"path":981,"description":410,"icon":411,"group":152},"\u002Fdocs\u002Fnuxt\u002Fbrowser\u002Fbrowserbase",{"title":413,"path":983,"description":415,"icon":392,"group":152},"\u002Fdocs\u002Fnuxt\u002Fbrowser\u002Fplaywright",{"title":66,"path":985,"description":418},"\u002Fdocs\u002Fnuxt\u002Fbrowser\u002Ftroubleshooting",{"title":420,"path":987,"description":422,"icon":423,"children":988},"\u002Fdocs\u002Fnuxt\u002Fsandbox",[989,991,993,995,997,999,1001,1003,1005,1007,1009,1011,1013,1015],{"title":37,"path":990,"description":427},"\u002Fdocs\u002Fnuxt\u002Fsandbox\u002Fquickstart",{"title":41,"path":992,"description":430},"\u002Fdocs\u002Fnuxt\u002Fsandbox\u002Fruntime-api",{"title":432,"path":994,"description":434},"\u002Fdocs\u002Fnuxt\u002Fsandbox\u002Fwhen-to-use",{"title":436,"path":996,"description":438,"group":52},"\u002Fdocs\u002Fnuxt\u002Fsandbox\u002Fguides\u002Frun-a-sandbox",{"title":191,"path":998,"description":441,"group":52},"\u002Fdocs\u002Fnuxt\u002Fsandbox\u002Fguides\u002Fvalidate-payloads",{"title":443,"path":1000,"description":445,"group":52},"\u002Fdocs\u002Fnuxt\u002Fsandbox\u002Fguides\u002Freuse-a-sandbox",{"title":148,"path":1002,"description":448,"icon":151},"\u002Fdocs\u002Fnuxt\u002Fsandbox\u002Fproviders\u002Fcloudflare",{"title":450,"path":1004,"description":452,"icon":151},"\u002Fdocs\u002Fnuxt\u002Fsandbox\u002Fproviders\u002Fcloudflare-dynamic",{"title":211,"path":1006,"description":455,"icon":214},"\u002Fdocs\u002Fnuxt\u002Fsandbox\u002Fproviders\u002Fvercel",{"title":457,"path":1008,"description":459,"icon":460},"\u002Fdocs\u002Fnuxt\u002Fsandbox\u002Fproviders\u002Fdeno",{"title":462,"path":1010,"description":464,"icon":465},"\u002Fdocs\u002Fnuxt\u002Fsandbox\u002Fproviders\u002Fdocker",{"title":467,"path":1012,"description":469,"icon":470},"\u002Fdocs\u002Fnuxt\u002Fsandbox\u002Fproviders\u002Flocal",{"title":66,"path":1014,"description":473},"\u002Fdocs\u002Fnuxt\u002Fsandbox\u002Ftroubleshooting",{"title":70,"path":1016,"description":476},"\u002Fdocs\u002Fnuxt\u002Fsandbox\u002Fplayground",{"title":478,"path":1018,"description":480,"icon":481,"children":1019},"\u002Fdocs\u002Fnuxt\u002Fanalytics",[1020,1022,1024,1026,1028,1030],{"title":37,"path":1021,"description":485},"\u002Fdocs\u002Fnuxt\u002Fanalytics\u002Fquickstart",{"title":41,"path":1023,"description":488},"\u002Fdocs\u002Fnuxt\u002Fanalytics\u002Fruntime-api",{"title":490,"path":1025,"description":492},"\u002Fdocs\u002Fnuxt\u002Fanalytics\u002Fwhen-to-use",{"title":211,"path":1027,"description":495,"icon":214,"group":152},"\u002Fdocs\u002Fnuxt\u002Fanalytics\u002Fvercel",{"title":148,"path":1029,"description":498,"icon":151,"group":152},"\u002Fdocs\u002Fnuxt\u002Fanalytics\u002Fcloudflare",{"title":66,"path":1031,"description":501},"\u002Fdocs\u002Fnuxt\u002Fanalytics\u002Ftroubleshooting",{"id":1033,"title":113,"body":1034,"description":115,"extension":1134,"meta":1135,"navigation":1136,"path":824,"seo":1137,"stem":1138,"__hash__":1139},"docs\u002Fdocs\u002Fnuxt\u002Fblob\u002Fwhen-to-use.md",{"type":1035,"value":1036,"toc":1125},"minimark",[1037,1041,1046,1049,1065,1069,1072,1075,1079,1082,1085,1089,1092,1103,1107],[1038,1039,1040],"p",{},"Use Blob when the data is a file or asset that should be stored and served as binary content.",[1042,1043,1045],"h2",{"id":1044},"choose-blob-when","Choose Blob when",[1038,1047,1048],{},"Blob is usually the right fit when:",[1050,1051,1052,1056,1059,1062],"ul",{},[1053,1054,1055],"li",{},"the app stores uploads or generated files",[1053,1057,1058],{},"the stored value needs a content type and file metadata",[1053,1060,1061],{},"the app serves the file later through a route or a storage URL",[1053,1063,1064],{},"driver portability matters across local and hosted object storage",[1042,1066,1068],{"id":1067},"blob-vs-kv","Blob vs KV",[1038,1070,1071],{},"Choose Blob for files and asset-like content.",[1038,1073,1074],{},"Choose KV for small keyed values, structured state, and configuration data.",[1042,1076,1078],{"id":1077},"blob-vs-cache","Blob vs Cache",[1038,1080,1081],{},"Choose Blob for durable file storage.",[1038,1083,1084],{},"Choose Cache for recomputable data that can expire and be regenerated.",[1042,1086,1088],{"id":1087},"when-blob-is-not-the-right-primitive","When Blob is not the right primitive",[1038,1090,1091],{},"Blob is usually the wrong fit when:",[1050,1093,1094,1097,1100],{},[1053,1095,1096],{},"the stored value is structured key-value data",[1053,1098,1099],{},"the data should expire and be recomputed instead of stored durably",[1053,1101,1102],{},"the app needs a highly specialized storage layer with no value in driver portability",[1042,1104,1106],{"id":1105},"related-pages","Related pages",[1050,1108,1109,1115,1120],{},[1053,1110,1111],{},[1112,1113,37],"a",{"href":1114},".\u002Fquickstart",[1053,1116,1117],{},[1112,1118,41],{"href":1119},".\u002Fruntime-api",[1053,1121,1122],{},[1112,1123,66],{"href":1124},".\u002Ftroubleshooting",{"title":1126,"searchDepth":1127,"depth":1127,"links":1128},"",2,[1129,1130,1131,1132,1133],{"id":1044,"depth":1127,"text":1045},{"id":1067,"depth":1127,"text":1068},{"id":1077,"depth":1127,"text":1078},{"id":1087,"depth":1127,"text":1088},{"id":1105,"depth":1127,"text":1106},"md",{},{"title":113},{"title":113,"description":115},"docs\u002Fnuxt\u002Fblob\u002Fwhen-to-use","IuSi_KFMf_BII58MHMqdV0lSd5qkfgeHcq7wJKJFn6w",[1141,1142],{"title":41,"path":822,"description":111},{"title":117,"path":826,"description":119},1775743114182]