[{"data":1,"prerenderedAt":905},["ShallowReactive",2],{"navigation":3,"docs-path-index":208,"-docs-deployment-vercel":272,"-docs-deployment-vercel-surround":900},[4],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":52},"Docs","i-lucide-book-marked","\u002Fdocs","docs",[10,26,53,169,190],{"title":11,"path":12,"stem":13,"children":14,"icon":25},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started\u002F1.index",[15,17,21],{"title":16,"path":12,"stem":13},"Introduction",{"title":18,"path":19,"stem":20},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F2.installation",{"title":22,"path":23,"stem":24},"Examples","\u002Fdocs\u002Fgetting-started\u002Fexamples","docs\u002F1.getting-started\u002F3.examples","i-lucide-rocket",{"title":27,"icon":28,"path":29,"stem":30,"children":31,"page":52},"Core features","i-lucide-square-function","\u002Fdocs\u002Fcore-features","docs\u002F2.core-features",[32,36,40,44,48],{"title":33,"path":34,"stem":35},"Configuration","\u002Fdocs\u002Fcore-features\u002Fconfiguration","docs\u002F2.core-features\u002F0.configuration",{"title":37,"path":38,"stem":39},"Dependency Injection","\u002Fdocs\u002Fcore-features\u002Fcontainer","docs\u002F2.core-features\u002F1.container",{"title":41,"path":42,"stem":43},"Controllers","\u002Fdocs\u002Fcore-features\u002Fcontrollers","docs\u002F2.core-features\u002F2.controllers",{"title":45,"path":46,"stem":47},"Middlewares","\u002Fdocs\u002Fcore-features\u002Fmiddlewares","docs\u002F2.core-features\u002F3.middlewares",{"title":49,"path":50,"stem":51},"Validation","\u002Fdocs\u002Fcore-features\u002Fvalidation","docs\u002F2.core-features\u002F4.validation",false,{"title":54,"icon":55,"defaultOpen":56,"path":57,"stem":58,"children":59,"page":52},"Modules","i-lucide-boxes",true,"\u002Fdocs\u002Fmodules","docs\u002F3.modules",[60,77,93,101,116,127,142,161],{"title":61,"icon":52,"defaultOpen":52,"path":62,"stem":63,"children":64,"page":52},"Auth","\u002Fdocs\u002Fmodules\u002Fauth","docs\u002F3.modules\u002F1.auth",[65,69,73],{"title":66,"path":67,"stem":68},"Overview","\u002Fdocs\u002Fmodules\u002Fauth\u002Foverview","docs\u002F3.modules\u002F1.auth\u002F0.overview",{"title":70,"path":71,"stem":72},"Decorators","\u002Fdocs\u002Fmodules\u002Fauth\u002Fdecorators","docs\u002F3.modules\u002F1.auth\u002F1.decorators",{"title":74,"path":75,"stem":76},"API Reference","\u002Fdocs\u002Fmodules\u002Fauth\u002Fapi","docs\u002F3.modules\u002F1.auth\u002F2.api",{"title":78,"icon":52,"defaultOpen":52,"path":79,"stem":80,"children":81,"page":52},"Logger","\u002Fdocs\u002Fmodules\u002Flogger","docs\u002F3.modules\u002F2.logger",[82,85,89],{"title":66,"path":83,"stem":84},"\u002Fdocs\u002Fmodules\u002Flogger\u002Foverview","docs\u002F3.modules\u002F2.logger\u002F0.overview",{"title":86,"path":87,"stem":88},"Drains & Adapters","\u002Fdocs\u002Fmodules\u002Flogger\u002Fdrivers","docs\u002F3.modules\u002F2.logger\u002F1.drivers",{"title":90,"path":91,"stem":92},"API","\u002Fdocs\u002Fmodules\u002Flogger\u002Fapi","docs\u002F3.modules\u002F2.logger\u002F2.api",{"title":94,"icon":52,"defaultOpen":52,"path":95,"stem":96,"children":97,"page":52},"Serverless","\u002Fdocs\u002Fmodules\u002Fserverless","docs\u002F3.modules\u002F3.serverless",[98],{"title":66,"path":99,"stem":100},"\u002Fdocs\u002Fmodules\u002Fserverless\u002Foverview","docs\u002F3.modules\u002F3.serverless\u002F0.overview",{"title":102,"icon":52,"defaultOpen":52,"path":103,"stem":104,"children":105,"page":52},"Storage","\u002Fdocs\u002Fmodules\u002Fstorage","docs\u002F3.modules\u002F4.storage",[106,109,113],{"title":66,"path":107,"stem":108},"\u002Fdocs\u002Fmodules\u002Fstorage\u002Foverview","docs\u002F3.modules\u002F4.storage\u002F0.overview",{"title":110,"path":111,"stem":112},"Drivers","\u002Fdocs\u002Fmodules\u002Fstorage\u002Fdrivers","docs\u002F3.modules\u002F4.storage\u002F1.drivers",{"title":90,"path":114,"stem":115},"\u002Fdocs\u002Fmodules\u002Fstorage\u002Fapi","docs\u002F3.modules\u002F4.storage\u002F2.api",{"title":117,"icon":52,"defaultOpen":52,"path":118,"stem":119,"children":120,"page":52},"Web Sockets","\u002Fdocs\u002Fmodules\u002Fweb-sockets","docs\u002F3.modules\u002F5.web-sockets",[121,124],{"title":66,"path":122,"stem":123},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002Foverview","docs\u002F3.modules\u002F5.web-sockets\u002F0.overview",{"title":90,"path":125,"stem":126},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002Fapi","docs\u002F3.modules\u002F5.web-sockets\u002F1.api",{"title":128,"icon":52,"defaultOpen":52,"path":129,"stem":130,"children":131,"page":52},"Schema","\u002Fdocs\u002Fmodules\u002Fschema","docs\u002F3.modules\u002F6.schema",[132,135,138],{"title":66,"path":133,"stem":134},"\u002Fdocs\u002Fmodules\u002Fschema\u002Foverview","docs\u002F3.modules\u002F6.schema\u002F0.overview",{"title":70,"path":136,"stem":137},"\u002Fdocs\u002Fmodules\u002Fschema\u002Fdecorators","docs\u002F3.modules\u002F6.schema\u002F1.decorators",{"title":139,"path":140,"stem":141},"Scalar","\u002Fdocs\u002Fmodules\u002Fschema\u002Fscalar","docs\u002F3.modules\u002F6.schema\u002F2.scalar",{"title":143,"icon":52,"defaultOpen":52,"path":144,"stem":145,"children":146,"page":52},"Nitro","\u002Fdocs\u002Fmodules\u002Fnitro","docs\u002F3.modules\u002F7.nitro",[147,150,153,157],{"title":66,"path":148,"stem":149},"\u002Fdocs\u002Fmodules\u002Fnitro\u002Foverview","docs\u002F3.modules\u002F7.nitro\u002F0.overview",{"title":102,"path":151,"stem":152},"\u002Fdocs\u002Fmodules\u002Fnitro\u002Fstorage","docs\u002F3.modules\u002F7.nitro\u002F1.storage",{"title":154,"path":155,"stem":156},"File-Based Routes","\u002Fdocs\u002Fmodules\u002Fnitro\u002Ffile-based-routes","docs\u002F3.modules\u002F7.nitro\u002F2.file-based-routes",{"title":158,"path":159,"stem":160},"Middleware","\u002Fdocs\u002Fmodules\u002Fnitro\u002Fmiddleware","docs\u002F3.modules\u002F7.nitro\u002F3.middleware",{"title":162,"icon":52,"defaultOpen":52,"path":163,"stem":164,"children":165,"page":52},"Vite","\u002Fdocs\u002Fmodules\u002Fvite","docs\u002F3.modules\u002F8.vite",[166],{"title":66,"path":167,"stem":168},"\u002Fdocs\u002Fmodules\u002Fvite\u002Foverview","docs\u002F3.modules\u002F8.vite\u002F0.overview",{"title":170,"icon":171,"path":172,"stem":173,"children":174,"page":52},"Deployment","i-lucide-cloud-upload","\u002Fdocs\u002Fdeployment","docs\u002F4.deployment",[175,178,182,186],{"title":66,"path":176,"stem":177},"\u002Fdocs\u002Fdeployment\u002Foverview","docs\u002F4.deployment\u002F0.overview",{"title":179,"path":180,"stem":181},"Vercel","\u002Fdocs\u002Fdeployment\u002Fvercel","docs\u002F4.deployment\u002F1.vercel",{"title":183,"path":184,"stem":185},"AWS Lambda","\u002Fdocs\u002Fdeployment\u002Faws-lambda","docs\u002F4.deployment\u002F2.aws-lambda",{"title":187,"path":188,"stem":189},"Azure Functions","\u002Fdocs\u002Fdeployment\u002Fazure-functions","docs\u002F4.deployment\u002F3.azure-functions",{"title":191,"icon":192,"path":193,"stem":194,"children":195,"page":52},"Advanced","i-lucide-brain","\u002Fdocs\u002Fadvanced","docs\u002F99.advanced",[196,200,204],{"title":197,"path":198,"stem":199},"Custom Decorator","\u002Fdocs\u002Fadvanced\u002Fcustom-decorator","docs\u002F99.advanced\u002F1.custom-decorator",{"title":201,"path":202,"stem":203},"Plugins","\u002Fdocs\u002Fadvanced\u002Fcustom-plugin","docs\u002F99.advanced\u002F2.custom-plugin",{"title":205,"path":206,"stem":207},"Custom CLI Command","\u002Fdocs\u002Fadvanced\u002Fcustom-cli-command","docs\u002F99.advanced\u002F3.custom-cli-command",[209,211,213,214,215,216,218,219,220,221,222,223,225,227,228,229,230,232,233,234,235,237,238,240,241,242,243,245,246,247,249,250,251,252,254,255,256,257,258,260,261,263,264,265,266,267,269,270,271],{"path":210},"\u002Fdocs\u002F.navigation",{"path":212},"\u002Fdocs\u002Fgetting-started\u002F.navigation",{"path":12},{"path":19},{"path":23},{"path":217},"\u002Fdocs\u002Fcore-features\u002F.navigation",{"path":34},{"path":38},{"path":42},{"path":46},{"path":50},{"path":224},"\u002Fdocs\u002Fmodules\u002F.navigation",{"path":226},"\u002Fdocs\u002Fmodules\u002Fauth\u002F.navigation",{"path":67},{"path":71},{"path":75},{"path":231},"\u002Fdocs\u002Fmodules\u002Flogger\u002F.navigation",{"path":83},{"path":87},{"path":91},{"path":236},"\u002Fdocs\u002Fmodules\u002Fserverless\u002F.navigation",{"path":99},{"path":239},"\u002Fdocs\u002Fmodules\u002Fstorage\u002F.navigation",{"path":107},{"path":111},{"path":114},{"path":244},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002F.navigation",{"path":122},{"path":125},{"path":248},"\u002Fdocs\u002Fmodules\u002Fschema\u002F.navigation",{"path":133},{"path":136},{"path":140},{"path":253},"\u002Fdocs\u002Fmodules\u002Fnitro\u002F.navigation",{"path":148},{"path":151},{"path":155},{"path":159},{"path":259},"\u002Fdocs\u002Fmodules\u002Fvite\u002F.navigation",{"path":167},{"path":262},"\u002Fdocs\u002Fdeployment\u002F.navigation",{"path":176},{"path":180},{"path":184},{"path":188},{"path":268},"\u002Fdocs\u002Fadvanced\u002F.navigation",{"path":198},{"path":202},{"path":206},{"id":273,"title":179,"body":274,"description":894,"extension":895,"links":896,"meta":897,"navigation":56,"path":180,"seo":898,"stem":181,"__hash__":899},"docs\u002Fdocs\u002F4.deployment\u002F1.vercel.md",{"type":275,"value":276,"toc":885},"minimark",[277,312,341,344,384,387,392,409,416,527,553,557,567,657,671,675,689,753,757,768,785,789,799,816,819,823,859,863,881],[278,279,281],"tip",{"icon":280},"i-lucide-layers",[282,283,284,287,288,290,291,301,302,304,305,307,308,311],"p",{},[285,286,183],"strong",{}," and ",[285,289,187],{}," use the ",[292,293,297],"a",{"href":294,"rel":295},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@vercube\u002Fserverless",[296],"nofollow",[298,299,300],"code",{},"@vercube\u002Fserverless"," adapters instead of this flow. See ",[292,303,183],{"href":184},", ",[292,306,187],{"href":188},", and the ",[292,309,310],{"href":99},"Serverless module"," overview.",[282,313,314,315,322,323,330,331,340],{},"Vercube targets the standard Web ",[292,316,319],{"href":317,"rel":318},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FRequest",[296],[298,320,321],{},"Request"," \u002F ",[292,324,327],{"href":325,"rel":326},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FResponse",[296],[298,328,329],{},"Response"," APIs. That lines up with ",[292,332,335,336,339],{"href":333,"rel":334},"https:\u002F\u002Fvercel.com\u002Fdocs\u002Ffunctions\u002Fruntimes\u002Fnode-js#web-handler",[296],"Vercel Functions that use a ",[298,337,338],{},"fetch"," handler"," on the Node.js runtime: you ship one serverless function and route all HTTP traffic to it.",[282,342,343],{},"This guide assumes a typical Vercube entry file that:",[345,346,347,355,370],"ul",{},[348,349,350,351,354],"li",{},"boots the app with ",[298,352,353],{},"createApp()"," (and your container setup),",[348,356,357,358,361,362,365,366,369],{},"calls ",[298,359,360],{},"app.listen()"," only when ",[298,363,364],{},"import.meta.main"," is true (local dev \u002F ",[298,367,368],{},"node dist\u002Findex.mjs","),",[348,371,372,375,376,379,380,383],{},[285,373,374],{},"exports"," ",[298,377,378],{},"default: { fetch: app.fetch.bind(app) }"," so a platform can drive the app without ",[298,381,382],{},"listen()",".",[282,385,386],{},"If your entry file does not export that object yet, add it before deploying.",[388,389,391],"h2",{"id":390},"_1-production-build","1. Production build",[282,393,394,395,398,399,401,402,322,405,408],{},"Vercel should run the same build you use locally. The CLI writes a Node ESM bundle to ",[298,396,397],{},"dist\u002Findex.mjs"," by default (see ",[292,400,33],{"href":34}," for ",[298,403,404],{},"build.output",[298,406,407],{},"build.entry",").",[282,410,411,412,415],{},"In ",[298,413,414],{},"package.json",":",[417,418,423],"pre",{"className":419,"code":420,"language":421,"meta":422,"style":422},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"scripts\": {\n    \"build\": \"vercube build\"\n  },\n  \"engines\": {\n    \"node\": \">=22\"\n  }\n}\n","json","",[298,424,425,434,452,476,482,496,515,521],{"__ignoreMap":422},[426,427,430],"span",{"class":428,"line":429},"line",1,[426,431,433],{"class":432},"sMK4o","{\n",[426,435,437,440,444,447,449],{"class":428,"line":436},2,[426,438,439],{"class":432},"  \"",[426,441,443],{"class":442},"spNyl","scripts",[426,445,446],{"class":432},"\"",[426,448,415],{"class":432},[426,450,451],{"class":432}," {\n",[426,453,455,458,462,464,466,469,473],{"class":428,"line":454},3,[426,456,457],{"class":432},"    \"",[426,459,461],{"class":460},"sBMFI","build",[426,463,446],{"class":432},[426,465,415],{"class":432},[426,467,468],{"class":432}," \"",[426,470,472],{"class":471},"sfazB","vercube build",[426,474,475],{"class":432},"\"\n",[426,477,479],{"class":428,"line":478},4,[426,480,481],{"class":432},"  },\n",[426,483,485,487,490,492,494],{"class":428,"line":484},5,[426,486,439],{"class":432},[426,488,489],{"class":442},"engines",[426,491,446],{"class":432},[426,493,415],{"class":432},[426,495,451],{"class":432},[426,497,499,501,504,506,508,510,513],{"class":428,"line":498},6,[426,500,457],{"class":432},[426,502,503],{"class":460},"node",[426,505,446],{"class":432},[426,507,415],{"class":432},[426,509,468],{"class":432},[426,511,512],{"class":471},">=22",[426,514,475],{"class":432},[426,516,518],{"class":428,"line":517},7,[426,519,520],{"class":432},"  }\n",[426,522,524],{"class":428,"line":523},8,[426,525,526],{"class":432},"}\n",[282,528,529,530,533,534,304,537,540,541,544,545,548,549,552],{},"In the Vercel project settings, set ",[285,531,532],{},"Build Command"," to ",[298,535,536],{},"pnpm build",[298,538,539],{},"npm run build",", or ",[298,542,543],{},"bun run build","-whatever matches your package manager. You do ",[285,546,547],{},"not"," need a separate \"Output Directory\" for static assets unless you also deploy a frontend; the API bundle lives under ",[298,550,551],{},"dist\u002F"," and is loaded by the function below.",[388,554,556],{"id":555},"_2-vercel-function-wrapper","2. Vercel function wrapper",[282,558,559,560,563,564,566],{},"Vercel discovers handlers under ",[298,561,562],{},"\u002Fapi",". Add a small file that re-exports your built app (so the platform invokes ",[298,565,338],{}," on every request):",[568,569,570,620],"code-group",{},[417,571,576],{"className":572,"code":573,"filename":574,"language":575,"meta":422,"style":422},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import handler from '..\u002Fdist\u002Findex.mjs';\n\nexport default handler;\n","api\u002Findex.ts","ts",[298,577,578,603,608],{"__ignoreMap":422},[426,579,580,584,588,591,594,597,600],{"class":428,"line":429},[426,581,583],{"class":582},"s7zQu","import",[426,585,587],{"class":586},"sTEyZ"," handler ",[426,589,590],{"class":582},"from",[426,592,593],{"class":432}," '",[426,595,596],{"class":471},"..\u002Fdist\u002Findex.mjs",[426,598,599],{"class":432},"'",[426,601,602],{"class":432},";\n",[426,604,605],{"class":428,"line":436},[426,606,607],{"emptyLinePlaceholder":56},"\n",[426,609,610,613,616,618],{"class":428,"line":454},[426,611,612],{"class":582},"export",[426,614,615],{"class":582}," default",[426,617,339],{"class":586},[426,619,602],{"class":432},[417,621,625],{"className":622,"code":573,"filename":623,"language":624,"meta":422,"style":422},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","api\u002Findex.js","js",[298,626,627,643,647],{"__ignoreMap":422},[426,628,629,631,633,635,637,639,641],{"class":428,"line":429},[426,630,583],{"class":582},[426,632,587],{"class":586},[426,634,590],{"class":582},[426,636,593],{"class":432},[426,638,596],{"class":471},[426,640,599],{"class":432},[426,642,602],{"class":432},[426,644,645],{"class":428,"line":436},[426,646,607],{"emptyLinePlaceholder":56},[426,648,649,651,653,655],{"class":428,"line":454},[426,650,612],{"class":582},[426,652,615],{"class":582},[426,654,339],{"class":586},[426,656,602],{"class":432},[282,658,659,660,663,664,667,668,670],{},"Ensure the ",[285,661,662],{},"Install"," + ",[285,665,666],{},"Build"," steps run before the function is bundled so ",[298,669,397],{}," exists.",[388,672,674],{"id":673},"_3-route-everything-to-the-function","3. Route everything to the function",[282,676,677,678,681,682,287,685,688],{},"Add a ",[298,679,680],{},"vercel.json"," at the repository root so paths like ",[298,683,684],{},"\u002Fapi\u002Ffoo",[298,686,687],{},"\u002F"," both reach the same handler (adjust if you expose static files or multiple functions):",[417,690,692],{"className":419,"code":691,"filename":680,"language":421,"meta":422,"style":422},"{\n  \"rewrites\": [{ \"source\": \"\u002F(.*)\", \"destination\": \"\u002Fapi\" }]\n}\n",[298,693,694,698,749],{"__ignoreMap":422},[426,695,696],{"class":428,"line":429},[426,697,433],{"class":432},[426,699,700,702,705,707,709,712,714,717,719,721,723,726,728,731,733,736,738,740,742,744,746],{"class":428,"line":436},[426,701,439],{"class":432},[426,703,704],{"class":442},"rewrites",[426,706,446],{"class":432},[426,708,415],{"class":432},[426,710,711],{"class":432}," [{",[426,713,468],{"class":432},[426,715,716],{"class":460},"source",[426,718,446],{"class":432},[426,720,415],{"class":432},[426,722,468],{"class":432},[426,724,725],{"class":471},"\u002F(.*)",[426,727,446],{"class":432},[426,729,730],{"class":432},",",[426,732,468],{"class":432},[426,734,735],{"class":460},"destination",[426,737,446],{"class":432},[426,739,415],{"class":432},[426,741,468],{"class":432},[426,743,562],{"class":471},[426,745,446],{"class":432},[426,747,748],{"class":432}," }]\n",[426,750,751],{"class":428,"line":454},[426,752,526],{"class":432},[388,754,756],{"id":755},"_4-environment-variables","4. Environment variables",[282,758,759,760,763,764,767],{},"Configure secrets and config in the Vercel dashboard (",[285,761,762],{},"Settings → Environment Variables","). They are exposed to the Node runtime as ",[298,765,766],{},"process.env"," like anywhere else.",[282,769,770,771,322,774,322,777,780,781,784],{},"Use ",[285,772,773],{},"Production",[285,775,776],{},"Preview",[285,778,779],{},"Development"," scopes as appropriate so local ",[298,782,783],{},".env"," and Vercel stay in sync conceptually.",[388,786,788],{"id":787},"_5-nodejs-version-on-vercel","5. Node.js version on Vercel",[282,790,791,792,795,796,798],{},"Vercube expects ",[285,793,794],{},"Node.js 22+"," (see the monorepo ",[298,797,489],{}," field). On Vercel, set the major version explicitly:",[345,800,801,807],{},[348,802,803,806],{},[285,804,805],{},"Project → Settings → General → Node.js Version",", or",[348,808,809,812,813,815],{},[298,810,811],{},"engines.node"," in ",[298,814,414],{}," as shown above.",[282,817,818],{},"Mismatch here is a common source of \"works locally, fails on Vercel\".",[388,820,822],{"id":821},"pitfalls-and-limitations","Pitfalls and limitations",[345,824,825,831,837,843],{},[348,826,827,830],{},[285,828,829],{},"Cold starts"," - The first request after idle time pays serverless startup cost. Keep module scope lean; avoid heavy work at import time except what you truly need for every invocation.",[348,832,833,836],{},[285,834,835],{},"Execution time"," - Default function duration limits apply. Long-running requests or background work belong in queues, cron, or other services-not in a single HTTP invocation.",[348,838,839,842],{},[285,840,841],{},"WebSockets"," - Vercel’s serverless model is request\u002Fresponse oriented. Real-time patterns usually need a dedicated host or a Vercel-supported alternative; plan accordingly.",[348,844,845,848,849,852,853,287,855,858],{},[285,846,847],{},"Monorepos"," - If the app lives in a subdirectory, set ",[285,850,851],{},"Root Directory"," in the Vercel project to that package so ",[298,854,472],{},[298,856,857],{},"api\u002F"," resolve correctly.",[388,860,862],{"id":861},"optional-checks","Optional checks",[345,864,865,874],{},[348,866,867,868,870,871,873],{},"Run ",[298,869,472],{}," locally, then ",[298,872,368],{}," and hit your routes.",[348,875,876,877,880],{},"After deploy, hit a known route (for example from the base example, ",[298,878,879],{},"GET \u002Fapi\u002Ffoo",") and confirm status codes and logs in the Vercel dashboard.",[882,883,884],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":422,"searchDepth":429,"depth":436,"links":886},[887,888,889,890,891,892,893],{"id":390,"depth":436,"text":391},{"id":555,"depth":436,"text":556},{"id":673,"depth":436,"text":674},{"id":755,"depth":436,"text":756},{"id":787,"depth":436,"text":788},{"id":821,"depth":436,"text":822},{"id":861,"depth":436,"text":862},"Deploy a Vercube application to Vercel using Node.js serverless functions and the Web Fetch handler.","md",null,{},{"title":179,"description":894},"xMHF4qBiOOfNTZ2djsVQplAkU3qeFsBSKStveUt1KgE",[901,903],{"title":66,"path":176,"stem":177,"description":902,"children":-1},"How Vercube’s default build relates to production and development, and where to deploy.",{"title":183,"path":184,"stem":185,"description":904,"children":-1},"Deploy your Vercube application to AWS Lambda with API Gateway",1782807883984]