[{"data":1,"prerenderedAt":876},["ShallowReactive",2],{"navigation":3,"page-\u002Fguides\u002Fdeploy-a-nuxt-application":213,"surround-\u002Fguides\u002Fdeploy-a-nuxt-application":871},[4,17,48,79,95,118,133,144,155,167,186],{"title":5,"path":6,"stem":7,"children":8,"icon":16,"exact":11},"Getting started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12],{"title":10,"path":6,"stem":7,"exact":11,"children":-1},"Introduction",true,{"title":13,"path":14,"stem":15,"exact":11,"children":-1},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F2.quickstart","i-lucide-rocket",{"title":18,"path":19,"stem":20,"children":21,"icon":47,"exact":11},"Reference","\u002Freference","10.reference\u002F1.index",[22,23,27,31,35,39,43],{"title":18,"path":19,"stem":20,"exact":11,"children":-1},{"title":24,"path":25,"stem":26,"exact":11,"children":-1},"Variables","\u002Freference\u002Fvariables","10.reference\u002F2.variables",{"title":28,"path":29,"stem":30,"exact":11,"children":-1},"Hostnames and DNS","\u002Freference\u002Fhostnames-and-dns","10.reference\u002F3.hostnames-and-dns",{"title":32,"path":33,"stem":34,"exact":11,"children":-1},"Statuses","\u002Freference\u002Fstatuses","10.reference\u002F4.statuses",{"title":36,"path":37,"stem":38,"exact":11,"children":-1},"Limits","\u002Freference\u002Flimits","10.reference\u002F5.limits",{"title":40,"path":41,"stem":42,"exact":11,"children":-1},"Sizes","\u002Freference\u002Fsizes","10.reference\u002F6.sizes",{"title":44,"path":45,"stem":46,"exact":11,"children":-1},"The GitHub App","\u002Freference\u002Fgithub-app","10.reference\u002F7.github-app","i-lucide-book-open",{"title":49,"path":50,"stem":51,"children":52,"icon":78,"exact":11},"Troubleshooting","\u002Ftroubleshooting","11.troubleshooting\u002F1.index",[53,54,58,62,66,70,74],{"title":49,"path":50,"stem":51,"exact":11,"children":-1},{"title":55,"path":56,"stem":57,"exact":11,"children":-1},"Build failures","\u002Ftroubleshooting\u002Fbuild-failures","11.troubleshooting\u002F2.build-failures",{"title":59,"path":60,"stem":61,"exact":11,"children":-1},"Start and health failures","\u002Ftroubleshooting\u002Fstart-and-health-failures","11.troubleshooting\u002F3.start-and-health-failures",{"title":63,"path":64,"stem":65,"exact":11,"children":-1},"Reference failures","\u002Ftroubleshooting\u002Freference-failures","11.troubleshooting\u002F4.reference-failures",{"title":67,"path":68,"stem":69,"exact":11,"children":-1},"Failures that are Kuppit's","\u002Ftroubleshooting\u002Ffailures-that-are-kuppits","11.troubleshooting\u002F5.failures-that-are-kuppits",{"title":71,"path":72,"stem":73,"exact":11,"children":-1},"Domain issues","\u002Ftroubleshooting\u002Fdomain-issues","11.troubleshooting\u002F6.domain-issues",{"title":75,"path":76,"stem":77,"exact":11,"children":-1},"No preview for a pull request","\u002Ftroubleshooting\u002Fno-preview-for-a-pull-request","11.troubleshooting\u002F7.no-preview-for-a-pull-request","i-lucide-life-buoy",{"title":80,"path":81,"stem":82,"children":83,"icon":94,"exact":11},"Concepts","\u002Fconcepts","2.concepts\u002F1.index",[84,86,90],{"title":85,"path":81,"stem":82,"exact":11,"children":-1},"The Kuppit model",{"title":87,"path":88,"stem":89,"exact":11,"children":-1},"The application graph","\u002Fconcepts\u002Fthe-application-graph","2.concepts\u002F2.the-application-graph",{"title":91,"path":92,"stem":93,"exact":11,"children":-1},"How a service runs","\u002Fconcepts\u002Fhow-a-service-runs","2.concepts\u002F3.how-a-service-runs","i-lucide-shapes",{"title":96,"path":97,"stem":98,"children":99,"icon":117,"exact":11},"Deployments","\u002Fdeployments","3.deployments\u002F1.index",[100,101,105,109,113],{"title":96,"path":97,"stem":98,"exact":11,"children":-1},{"title":102,"path":103,"stem":104,"exact":11,"children":-1},"Builds","\u002Fdeployments\u002Fbuilds","3.deployments\u002F2.builds",{"title":106,"path":107,"stem":108,"exact":11,"children":-1},"Redeploy and roll back","\u002Fdeployments\u002Fredeploy-and-rollback","3.deployments\u002F3.redeploy-and-rollback",{"title":110,"path":111,"stem":112,"exact":11,"children":-1},"Logs","\u002Fdeployments\u002Flogs","3.deployments\u002F4.logs",{"title":114,"path":115,"stem":116,"exact":11,"children":-1},"When a deployment fails","\u002Fdeployments\u002Fwhen-a-deployment-fails","3.deployments\u002F5.when-a-deployment-fails","i-lucide-cloud-upload",{"title":119,"path":120,"stem":121,"children":122,"icon":132,"exact":11},"Resources","\u002Fresources","4.resources\u002F1.index",[123,124,128],{"title":119,"path":120,"stem":121,"exact":11,"children":-1},{"title":125,"path":126,"stem":127,"exact":11,"children":-1},"Web services","\u002Fresources\u002Fweb-services","4.resources\u002F2.web-services",{"title":129,"path":130,"stem":131,"exact":11,"children":-1},"PostgreSQL","\u002Fresources\u002Fpostgresql","4.resources\u002F3.postgresql","i-lucide-boxes",{"title":134,"icon":135,"path":136,"stem":137,"children":138,"page":143,"exact":11},"Configuration","i-lucide-sliders-horizontal","\u002Fconfiguration","5.configuration",[139],{"title":140,"path":141,"stem":142,"exact":11,"children":-1},"Environment variables","\u002Fconfiguration\u002Fvariables","5.configuration\u002F1.variables",false,{"title":145,"path":146,"stem":147,"children":148,"icon":154,"exact":11},"Networking","\u002Fnetworking","6.networking\u002F1.index",[149,150],{"title":145,"path":146,"stem":147,"exact":11,"children":-1},{"title":151,"path":152,"stem":153,"exact":11,"children":-1},"Reaching a database","\u002Fnetworking\u002Freaching-a-database","6.networking\u002F2.reaching-a-database","i-lucide-network",{"title":156,"path":157,"stem":158,"children":159,"icon":166,"exact":11},"Domains","\u002Fdomains","7.domains\u002F1.index",[160,162],{"title":161,"path":157,"stem":158,"exact":11,"children":-1},"Hostnames",{"title":163,"path":164,"stem":165,"exact":11,"children":-1},"Custom domains","\u002Fdomains\u002Fcustom-domains","7.domains\u002F2.custom-domains","i-lucide-globe",{"title":168,"path":169,"stem":170,"children":171,"icon":185,"exact":11},"Environments","\u002Fenvironments","8.environments\u002F1.index",[172,173,177,181],{"title":168,"path":169,"stem":170,"exact":11,"children":-1},{"title":174,"path":175,"stem":176,"exact":11,"children":-1},"Preview environments","\u002Fenvironments\u002Fpreview-environments","8.environments\u002F2.preview-environments",{"title":178,"path":179,"stem":180,"exact":11,"children":-1},"Named environments","\u002Fenvironments\u002Fnamed-environments","8.environments\u002F3.named-environments",{"title":182,"path":183,"stem":184,"exact":11,"children":-1},"Deleting an environment","\u002Fenvironments\u002Fdeleting-an-environment","8.environments\u002F4.deleting-an-environment","i-lucide-git-branch",{"title":187,"path":188,"stem":189,"children":190,"icon":212,"exact":11},"Guides","\u002Fguides","9.guides\u002F1.index",[191,192,196,200,204,208],{"title":187,"path":188,"stem":189,"exact":11,"children":-1},{"title":193,"path":194,"stem":195,"exact":11,"children":-1},"Deploy a Nuxt application","\u002Fguides\u002Fdeploy-a-nuxt-application","9.guides\u002F2.deploy-a-nuxt-application",{"title":197,"path":198,"stem":199,"exact":11,"children":-1},"Deploy a Next.js application","\u002Fguides\u002Fdeploy-a-nextjs-application","9.guides\u002F3.deploy-a-nextjs-application",{"title":201,"path":202,"stem":203,"exact":11,"children":-1},"Deploy an Express application","\u002Fguides\u002Fdeploy-an-express-application","9.guides\u002F4.deploy-an-express-application",{"title":205,"path":206,"stem":207,"exact":11,"children":-1},"Deploy with a Dockerfile","\u002Fguides\u002Fdeploy-with-a-dockerfile","9.guides\u002F5.deploy-with-a-dockerfile",{"title":209,"path":210,"stem":211,"exact":11,"children":-1},"Create a staging environment","\u002Fguides\u002Fcreate-a-staging-environment","9.guides\u002F6.create-a-staging-environment","i-lucide-map",{"id":214,"title":193,"badge":215,"body":216,"category":215,"description":865,"draft":143,"extension":866,"links":215,"meta":867,"navigation":11,"path":194,"seo":868,"sitemap":869,"stem":195,"__hash__":870},"docs\u002F9.guides\u002F2.deploy-a-nuxt-application.md",null,{"type":217,"value":218,"toc":857},"minimark",[219,236,241,394,404,408,434,438,463,467,482,579,601,607,611,641,834,839,843,853],[220,221,222,223,227,228,231,232,235],"p",{},"Kuppit detects a Nuxt application from the ",[224,225,226],"code",{},"nuxt"," dependency in ",[224,229,230],{},"package.json",", builds it with your ",[224,233,234],{},"build"," script, and starts the Nitro server it produces. Nothing in the repository needs to change for the first deployment.",[237,238,240],"h2",{"id":239},"what-kuppit-detects","What Kuppit detects",[242,243,244,260],"table",{},[245,246,247],"thead",{},[248,249,250,254,257],"tr",{},[251,252,253],"th",{},"Setting",[251,255,256],{},"Value",[251,258,259],{},"From",[261,262,263,285,308,325,351,377],"tbody",{},[248,264,265,272,275],{},[266,267,268],"td",{},[269,270,271],"strong",{},"Framework",[266,273,274],{},"Nuxt",[266,276,277,278,280,281,284],{},"The ",[224,279,226],{}," dependency, and ",[224,282,283],{},"nuxt.config.ts"," if present.",[248,286,287,292,302],{},[266,288,289],{},[269,290,291],{},"Node version",[266,293,294,295,298,299,301],{},"24, or what ",[224,296,297],{},"engines.node"," in ",[224,300,230],{}," admits",[266,303,304,305,307],{},"Only ",[224,306,297],{}," is read. 24 and 22 are supported.",[248,309,310,315,318],{},[266,311,312],{},[269,313,314],{},"Package manager",[266,316,317],{},"pnpm, npm or Yarn",[266,319,320,321,324],{},"The lockfile, or the ",[224,322,323],{},"packageManager"," field.",[248,326,327,332,345],{},[266,328,329],{},[269,330,331],{},"Build command",[266,333,334,337,338,341,342],{},[224,335,336],{},"pnpm build",", ",[224,339,340],{},"npm run build"," or ",[224,343,344],{},"yarn build",[266,346,347,348,350],{},"Your ",[224,349,234],{}," script.",[248,352,353,358,363],{},[266,354,355],{},[269,356,357],{},"Start command",[266,359,360],{},[224,361,362],{},"node .output\u002Fserver\u002Findex.mjs",[266,364,365,366,369,370,372,373,376],{},"Nuxt's Nitro output. A ",[224,367,368],{},"start"," script in ",[224,371,230],{}," is not used; change the command on ",[269,374,375],{},"Settings"," if you need another.",[248,378,379,384,387],{},[266,380,381],{},[269,382,383],{},"Port",[266,385,386],{},"3000",[266,388,389,390,393],{},"A default. Nitro reads ",[224,391,392],{},"PORT"," at runtime, so this needs no change.",[220,395,396,397,399,400,403],{},"Review these when Kuppit proposes the service, and afterwards on the service's ",[269,398,375],{}," tab. If your project is a workspace, set ",[269,401,402],{},"Root directory"," to the application; Kuppit builds from the workspace root with that directory as the app.",[237,405,407],{"id":406},"before-you-deploy","Before you deploy",[220,409,410,411,414,415,418,419,422,423,425,426,433],{},"Nuxt's default ",[224,412,413],{},"nuxt build"," produces the Nitro ",[224,416,417],{},"node-server"," output Kuppit starts. Keep that preset; a static preset (",[224,420,421],{},"nuxt generate",") produces no server, and a serverless preset produces one that does not listen. Nitro reads ",[224,424,392],{}," and binds to all interfaces on its own, so the ",[427,428,430,432],"a",{"href":429},"\u002Fresources\u002Fweb-services#the-port-contract",[224,431,392],{}," contract"," is already met.",[237,435,437],{"id":436},"deploy","Deploy",[220,439,440,441,443,444,447,448,337,451,454,455,458,459,462],{},"Follow the ",[427,442,13],{"href":14},": install the GitHub App, choose the repository and branch, confirm the proposal, and choose ",[269,445,446],{},"Deploy analyzed commit",". The deployment moves through ",[269,449,450],{},"Queued",[269,452,453],{},"Building"," and ",[269,456,457],{},"Deploying"," to ",[269,460,461],{},"Live",", and the service's hostname opens your application.",[237,464,466],{"id":465},"runtime-config-from-variables","Runtime config from variables",[220,468,469,470,473,474,477,478,481],{},"Nuxt's ",[224,471,472],{},"runtimeConfig"," is overridden at runtime by environment variables named after its keys with a ",[224,475,476],{},"NUXT_"," prefix, ",[224,479,480],{},"NUXT_PUBLIC_"," for the public section. That is exactly what Kuppit's variables are, so the pattern is:",[483,484,489],"pre",{"className":485,"code":486,"filename":283,"language":487,"meta":488,"style":488},"language-ts shiki shiki-themes material-theme-lighter github-light github-dark","export default defineNuxtConfig({\n    runtimeConfig: {\n        apiSecret: '',\n        public: { siteUrl: '' }\n    }\n})\n","ts","",[224,490,491,515,528,543,564,570],{"__ignoreMap":488},[492,493,496,500,503,507,511],"span",{"class":494,"line":495},"line",1,[492,497,499],{"class":498},"sVHd0","export",[492,501,502],{"class":498}," default",[492,504,506],{"class":505},"sGLFI"," defineNuxtConfig",[492,508,510],{"class":509},"su5hD","(",[492,512,514],{"class":513},"sP7_E","{\n",[492,516,518,522,525],{"class":494,"line":517},2,[492,519,521],{"class":520},"skxfh","    runtimeConfig",[492,523,524],{"class":513},":",[492,526,527],{"class":513}," {\n",[492,529,531,534,536,540],{"class":494,"line":530},3,[492,532,533],{"class":520},"        apiSecret",[492,535,524],{"class":513},[492,537,539],{"class":538},"sjJ54"," ''",[492,541,542],{"class":513},",\n",[492,544,546,549,551,554,557,559,561],{"class":494,"line":545},4,[492,547,548],{"class":520},"        public",[492,550,524],{"class":513},[492,552,553],{"class":513}," {",[492,555,556],{"class":520}," siteUrl",[492,558,524],{"class":513},[492,560,539],{"class":538},[492,562,563],{"class":513}," }\n",[492,565,567],{"class":494,"line":566},5,[492,568,569],{"class":513},"    }\n",[492,571,573,576],{"class":494,"line":572},6,[492,574,575],{"class":513},"}",[492,577,578],{"class":509},")\n",[220,580,581,582,584,585,588,589,592,593,596,597,600],{},"On the service's ",[269,583,24],{}," tab, add ",[224,586,587],{},"NUXT_API_SECRET"," as a secret and ",[224,590,591],{},"NUXT_PUBLIC_SITE_URL"," as a literal. Both are read when the server starts, so a change takes effect at the next deployment; the tab says ",[269,594,595],{},"Runtime configuration has changed"," until you ",[269,598,599],{},"Redeploy now",".",[220,602,603,604,606],{},"Variables reach the running server, not the build. A value your ",[224,605,413],{}," needs, which is rare, has to come from the repository.",[237,608,610],{"id":609},"add-a-database","Add a database",[220,612,613,614,337,617,337,620,622,623,626,627,584,629,632,633,458,635,637,638,640],{},"On the environment's ",[269,615,616],{},"Overview",[269,618,619],{},"Add resource",[269,621,129],{},". Keep the name ",[224,624,625],{},"database",". On the service's ",[269,628,24],{},[224,630,631],{},"DATABASE_URL"," as a ",[269,634,18],{},[224,636,625],{}," → ",[224,639,631],{},", then redeploy. In a server route:",[483,642,645],{"className":485,"code":643,"filename":644,"language":487,"meta":488,"style":488},"import { Client } from 'pg'\n\nexport default defineEventHandler(async () => {\n    const db = new Client({ connectionString: process.env.DATABASE_URL })\n    await db.connect()\n    const { rows } = await db.query('select now()')\n    await db.end()\n    return rows[0]\n})\n","server\u002Fapi\u002Fhealth.get.ts",[224,646,647,673,678,701,745,760,795,809,827],{"__ignoreMap":488},[492,648,649,652,654,657,660,663,666,670],{"class":494,"line":495},[492,650,651],{"class":498},"import",[492,653,553],{"class":513},[492,655,656],{"class":509}," Client",[492,658,659],{"class":513}," }",[492,661,662],{"class":498}," from",[492,664,665],{"class":538}," '",[492,667,669],{"class":668},"s_sjI","pg",[492,671,672],{"class":538},"'\n",[492,674,675],{"class":494,"line":517},[492,676,677],{"emptyLinePlaceholder":11},"\n",[492,679,680,682,684,687,689,693,696,699],{"class":494,"line":530},[492,681,499],{"class":498},[492,683,502],{"class":498},[492,685,686],{"class":505}," defineEventHandler",[492,688,510],{"class":509},[492,690,692],{"class":691},"sbsja","async",[492,694,695],{"class":513}," ()",[492,697,698],{"class":691}," =>",[492,700,527],{"class":513},[492,702,703,706,710,714,717,719,721,724,727,729,732,734,737,739,741,743],{"class":494,"line":545},[492,704,705],{"class":691},"    const",[492,707,709],{"class":708},"s_hVV"," db",[492,711,713],{"class":712},"smGrS"," =",[492,715,716],{"class":712}," new",[492,718,656],{"class":505},[492,720,510],{"class":520},[492,722,723],{"class":513},"{",[492,725,726],{"class":520}," connectionString",[492,728,524],{"class":513},[492,730,731],{"class":509}," process",[492,733,600],{"class":513},[492,735,736],{"class":509},"env",[492,738,600],{"class":513},[492,740,631],{"class":708},[492,742,659],{"class":513},[492,744,578],{"class":520},[492,746,747,750,752,754,757],{"class":494,"line":566},[492,748,749],{"class":498},"    await",[492,751,709],{"class":509},[492,753,600],{"class":513},[492,755,756],{"class":505},"connect",[492,758,759],{"class":520},"()\n",[492,761,762,764,766,769,771,773,776,778,780,783,785,788,791,793],{"class":494,"line":572},[492,763,705],{"class":691},[492,765,553],{"class":513},[492,767,768],{"class":708}," rows",[492,770,659],{"class":513},[492,772,713],{"class":712},[492,774,775],{"class":498}," await",[492,777,709],{"class":509},[492,779,600],{"class":513},[492,781,782],{"class":505},"query",[492,784,510],{"class":520},[492,786,787],{"class":538},"'",[492,789,790],{"class":668},"select now()",[492,792,787],{"class":538},[492,794,578],{"class":520},[492,796,798,800,802,804,807],{"class":494,"line":797},7,[492,799,749],{"class":498},[492,801,709],{"class":509},[492,803,600],{"class":513},[492,805,806],{"class":505},"end",[492,808,759],{"class":520},[492,810,812,815,817,820,824],{"class":494,"line":811},8,[492,813,814],{"class":498},"    return",[492,816,768],{"class":509},[492,818,819],{"class":520},"[",[492,821,823],{"class":822},"srdBf","0",[492,825,826],{"class":520},"]\n",[492,828,830,832],{"class":494,"line":829},9,[492,831,575],{"class":513},[492,833,578],{"class":509},[220,835,836,838],{},[427,837,129],{"href":130}," has the six variables a database exposes and how references resolve.",[237,840,842],{"id":841},"from-here","From here",[220,844,845,846,849,850,852],{},"Every push to the branch deploys again, and every pull request gets a ",[427,847,848],{"href":175},"preview environment"," on its own hostname. When a deployment fails, ",[427,851,49],{"href":50}," has the sentence it failed with.",[854,855,856],"style",{},"html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":488,"searchDepth":530,"depth":530,"links":858},[859,860,861,862,863,864],{"id":239,"depth":517,"text":240},{"id":406,"depth":517,"text":407},{"id":436,"depth":517,"text":437},{"id":465,"depth":517,"text":466},{"id":609,"depth":517,"text":610},{"id":841,"depth":517,"text":842},"From a Nuxt repository to a live URL, with runtime config from variables and a database behind it.","md",{},{"title":193,"description":865},{"loc":194},"KUMZUqWbRIrO2Oxqtug3Pe1tQ0smehKBFSre7VOCRVs",[872,874],{"title":187,"path":188,"stem":189,"description":873,"children":-1},"Walkthroughs from a repository to a running application, one per framework, and for the things you do after the first deployment.",{"title":197,"path":198,"stem":199,"description":875,"children":-1},"From a Next.js repository to a live URL, and where public and server values live when the build cannot see your variables.",1788549618284]