[{"data":1,"prerenderedAt":2523},["ShallowReactive",2],{"navigation":3,"examples-nav":224,"-examples-vite-ssr-preact":353,"-examples-vite-ssr-preact-surround":2516},[4,83,208,214,221],{"title":5,"path":6,"stem":7,"children":8,"icon":82},"","/docs","1.docs/1.index",[9,12,17,22,27,32,37,42,47,52,57,62,67,72,77],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-compass",{"title":13,"path":14,"stem":15,"icon":16},"Quick Start","/docs/quick-start","1.docs/2.quick-start","i-lucide-zap",{"title":18,"path":19,"stem":20,"icon":21},"Renderer","/docs/renderer","1.docs/4.renderer","ri:layout-masonry-line",{"title":23,"path":24,"stem":25,"icon":26},"Routing","/docs/routing","1.docs/5.routing","ri:direction-line",{"title":28,"path":29,"stem":30,"icon":31},"Assets","/docs/assets","1.docs/50.assets","ri:image-2-line",{"title":33,"path":34,"stem":35,"icon":36},"Configuration","/docs/configuration","1.docs/50.configuration","ri:settings-3-line",{"title":38,"path":39,"stem":40,"icon":41},"Database","/docs/database","1.docs/50.database","ri:database-2-line",{"title":43,"path":44,"stem":45,"icon":46},"Lifecycle","/docs/lifecycle","1.docs/50.lifecycle","i-lucide-layers",{"title":48,"path":49,"stem":50,"icon":51},"Plugins","/docs/plugins","1.docs/50.plugins","ri:plug-line",{"title":53,"path":54,"stem":55,"icon":56},"Tasks","/docs/tasks","1.docs/50.tasks","codicon:run-all",{"title":58,"path":59,"stem":60,"icon":61},"Server Entry","/docs/server-entry","1.docs/6.server-entry","ri:server-line",{"title":63,"path":64,"stem":65,"icon":66},"Cache","/docs/cache","1.docs/7.cache","ri:speed-line",{"title":68,"path":69,"stem":70,"icon":71},"KV Storage","/docs/storage","1.docs/8.storage","carbon:datastore",{"title":73,"path":74,"stem":75,"icon":76},"Migration Guide","/docs/migration","1.docs/99.migration","ri:arrow-right-up-line",{"title":78,"path":79,"stem":80,"icon":81},"Nightly Channel","/docs/nightly","1.docs/99.nightly","ri:moon-fill","i-lucide-book-open",{"title":84,"path":85,"stem":86,"children":87,"icon":89},"Deploy","/deploy","2.deploy/0.index",[88,90,111],{"title":84,"path":85,"stem":86,"icon":89},"ri:upload-cloud-2-line",{"title":91,"path":92,"stem":93,"children":94,"page":110},"Runtimes","/deploy/runtimes","2.deploy/10.runtimes",[95,100,105],{"title":96,"path":97,"stem":98,"icon":99},"Node.js","/deploy/runtimes/node","2.deploy/10.runtimes/1.node","akar-icons:node-fill",{"title":101,"path":102,"stem":103,"icon":104},"Bun","/deploy/runtimes/bun","2.deploy/10.runtimes/bun","simple-icons:bun",{"title":106,"path":107,"stem":108,"icon":109},"Deno","/deploy/runtimes/deno","2.deploy/10.runtimes/deno","simple-icons:deno",false,{"title":112,"path":113,"stem":114,"children":115,"page":110},"Providers","/deploy/providers","2.deploy/20.providers",[116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204],{"title":117,"path":118,"stem":119},"Alwaysdata","/deploy/providers/alwaysdata","2.deploy/20.providers/alwaysdata",{"title":121,"path":122,"stem":123},"AWS Lambda","/deploy/providers/aws","2.deploy/20.providers/aws",{"title":125,"path":126,"stem":127},"AWS Amplify","/deploy/providers/aws-amplify","2.deploy/20.providers/aws-amplify",{"title":129,"path":130,"stem":131},"Azure","/deploy/providers/azure","2.deploy/20.providers/azure",{"title":133,"path":134,"stem":135},"Cleavr","/deploy/providers/cleavr","2.deploy/20.providers/cleavr",{"title":137,"path":138,"stem":139},"Cloudflare","/deploy/providers/cloudflare","2.deploy/20.providers/cloudflare",{"title":141,"path":142,"stem":143},"Deno Deploy","/deploy/providers/deno-deploy","2.deploy/20.providers/deno-deploy",{"title":145,"path":146,"stem":147},"DigitalOcean","/deploy/providers/digitalocean","2.deploy/20.providers/digitalocean",{"title":149,"path":150,"stem":151},"Firebase","/deploy/providers/firebase","2.deploy/20.providers/firebase",{"title":153,"path":154,"stem":155},"Flightcontrol","/deploy/providers/flightcontrol","2.deploy/20.providers/flightcontrol",{"title":157,"path":158,"stem":159},"Genezio","/deploy/providers/genezio","2.deploy/20.providers/genezio",{"title":161,"path":162,"stem":163},"GitHub Pages","/deploy/providers/github-pages","2.deploy/20.providers/github-pages",{"title":165,"path":166,"stem":167},"GitLab Pages","/deploy/providers/gitlab-pages","2.deploy/20.providers/gitlab-pages",{"title":169,"path":170,"stem":171},"Heroku","/deploy/providers/heroku","2.deploy/20.providers/heroku",{"title":173,"path":174,"stem":175},"IIS","/deploy/providers/iis","2.deploy/20.providers/iis",{"title":177,"path":178,"stem":179},"Koyeb","/deploy/providers/koyeb","2.deploy/20.providers/koyeb",{"title":181,"path":182,"stem":183},"Netlify","/deploy/providers/netlify","2.deploy/20.providers/netlify",{"title":185,"path":186,"stem":187},"Platform.sh","/deploy/providers/platform-sh","2.deploy/20.providers/platform-sh",{"title":189,"path":190,"stem":191},"Render.com","/deploy/providers/render","2.deploy/20.providers/render",{"title":193,"path":194,"stem":195},"StormKit","/deploy/providers/stormkit","2.deploy/20.providers/stormkit",{"title":197,"path":198,"stem":199},"Vercel","/deploy/providers/vercel","2.deploy/20.providers/vercel",{"title":201,"path":202,"stem":203},"Zeabur","/deploy/providers/zeabur","2.deploy/20.providers/zeabur",{"title":205,"path":206,"stem":207},"Zerops","/deploy/providers/zerops","2.deploy/20.providers/zerops",{"title":209,"path":210,"stem":211,"children":212,"icon":36},"Config","/config","3.config/0.index",[213],{"title":209,"path":210,"stem":211,"icon":36},{"title":215,"path":216,"stem":217,"children":218,"icon":220},"Examples","/examples","4.examples/0.index",[219],{"title":215,"path":216,"stem":217,"icon":220},"i-lucide-folder-code",{"title":5,"path":222,"stem":223},"/","index",[225,230,235,239,243,246,251,255,259,263,267,271,275,280,284,287,291,295,299,304,308,313,317,321,325,329,333,337,341,345,349],{"title":226,"description":227,"category":228,"path":229},"API Routes","File-based API routing with HTTP method support and dynamic parameters.","features","/examples/api-routes/readme",{"title":231,"description":232,"category":233,"path":234},"Auto Imports","Automatic imports for utilities and composables.","config","/examples/auto-imports/readme",{"title":236,"description":237,"category":228,"path":238},"Cached Handler","Cache route responses with configurable bypass logic.","/examples/cached-handler/readme",{"title":240,"description":241,"category":228,"path":242},"Custom Error Handler","Customize error responses with a global error handler.","/examples/custom-error-handler/readme",{"title":38,"description":244,"category":228,"path":245},"Built-in database support with SQL template literals.","/examples/database/readme",{"title":247,"description":248,"category":249,"path":250},"Elysia","Integrate Elysia with Nitro using the server entry.","backend frameworks","/examples/elysia/readme",{"title":252,"description":253,"category":249,"path":254},"Express","Integrate Express with Nitro using the server entry.","/examples/express/readme",{"title":256,"description":257,"category":249,"path":258},"Fastify","Integrate Fastify with Nitro using the server entry.","/examples/fastify/readme",{"title":260,"description":261,"category":228,"path":262},"Hello World","Minimal Nitro server using the web standard fetch handler.","/examples/hello-world/readme",{"title":264,"description":265,"category":249,"path":266},"Hono","Integrate Hono with Nitro using the server entry.","/examples/hono/readme",{"title":268,"description":269,"category":233,"path":270},"Import Alias","Custom import aliases for cleaner module paths.","/examples/import-alias/readme",{"title":272,"description":273,"category":228,"path":274},"Middleware","Request middleware for authentication, logging, and request modification.","/examples/middleware/readme",{"title":276,"description":277,"category":278,"path":279},"Mono JSX","Server-side JSX rendering in Nitro with mono-jsx.","server side rendering","/examples/mono-jsx/readme",{"title":281,"description":282,"category":278,"path":283},"Nano JSX","Server-side JSX rendering in Nitro with nano-jsx.","/examples/nano-jsx/readme",{"title":48,"description":285,"category":228,"path":286},"Extend Nitro with custom plugins for hooks and lifecycle events.","/examples/plugins/readme",{"title":288,"description":289,"category":278,"path":290},"Custom Renderer","Build a custom HTML renderer in Nitro with server-side data fetching.","/examples/renderer/readme",{"title":292,"description":293,"category":233,"path":294},"Runtime Config","Environment-aware configuration with runtime access.","/examples/runtime-config/readme",{"title":296,"description":297,"category":228,"path":298},"Server Fetch","Internal server-to-server requests without network overhead.","/examples/server-fetch/readme",{"title":300,"description":301,"category":302,"path":303},"Shiki","Server-side syntax highlighting in Nitro with Shiki.","integrations","/examples/shiki/readme",{"title":305,"description":306,"category":228,"path":307},"Virtual Routes","Define routes programmatically using Nitro's virtual module system.","/examples/virtual-routes/readme",{"title":309,"description":310,"category":311,"path":312},"Vite Nitro Plugin","Use Nitro as a Vite plugin for programmatic configuration.","vite","/examples/vite-nitro-plugin/readme",{"title":314,"description":315,"category":311,"path":316},"Vite RSC","React Server Components with Vite and Nitro.","/examples/vite-rsc/readme",{"title":318,"description":319,"category":278,"path":320},"Vite SSR HTML","Server-side rendering with vanilla HTML, Vite, and Nitro.","/examples/vite-ssr-html/readme",{"title":322,"description":323,"category":278,"path":324},"SSR with Preact","Server-side rendering with Preact in Nitro using Vite.","/examples/vite-ssr-preact/readme",{"title":326,"description":327,"category":278,"path":328},"SSR with React","Server-side rendering with React in Nitro using Vite.","/examples/vite-ssr-react/readme",{"title":330,"description":331,"category":278,"path":332},"SSR with SolidJS","Server-side rendering with SolidJS in Nitro using Vite.","/examples/vite-ssr-solid/readme",{"title":334,"description":335,"category":278,"path":336},"SSR with TanStack Router","Client-side routing with TanStack Router in Nitro using Vite.","/examples/vite-ssr-tsr-react/readme",{"title":338,"description":339,"category":278,"path":340},"SSR with TanStack Start","Full-stack React with TanStack Start in Nitro using Vite.","/examples/vite-ssr-tss-react/readme",{"title":342,"description":343,"category":278,"path":344},"SSR with Vue Router","Server-side rendering with Vue Router in Nitro using Vite.","/examples/vite-ssr-vue-router/readme",{"title":346,"description":347,"category":311,"path":348},"Vite + tRPC","End-to-end typesafe APIs with tRPC in Nitro using Vite.","/examples/vite-trpc/readme",{"title":350,"description":351,"category":228,"path":352},"WebSocket","Real-time bidirectional communication with WebSocket support.","/examples/websocket/readme",{"id":354,"title":322,"body":355,"category":278,"description":323,"extension":2509,"icon":2510,"meta":2511,"navigation":2512,"path":324,"seo":2513,"stem":2514,"__hash__":2515},"examples/examples/vite-ssr-preact/README.md",{"type":356,"value":357,"toc":2501},"minimark",[358,1628,1631,1636,1653,1657,1664,1774,1789,1793,1796,1892,1896,1902,2364,2387,2391,2394,2470,2480,2484,2497],[359,360,363,559,618,764,897,991,1571],"code-tree",{":expand-all":361,"default-value":362,"expand-all":5},"true","src/entry-server.tsx",[364,365,370],"pre",{"className":366,"code":367,"filename":368,"language":369,"meta":5,"style":5},"language-json shiki shiki-themes github-light github-dark github-dark","{\n  \"type\": \"module\",\n  \"scripts\": {\n    \"build\": \"vite build\",\n    \"preview\": \"vite preview\",\n    \"dev\": \"vite dev\"\n  },\n  \"devDependencies\": {\n    \"@preact/preset-vite\": \"^2.10.3\",\n    \"@tailwindcss/vite\": \"^4.1.18\",\n    \"nitro\": \"latest\",\n    \"preact\": \"^10.28.3\",\n    \"preact-render-to-string\": \"^6.6.5\",\n    \"tailwindcss\": \"^4.1.18\",\n    \"vite\": \"beta\"\n  }\n}\n","package.json","json",[371,372,373,382,399,408,421,434,445,451,459,472,485,498,511,524,536,547,553],"code",{"__ignoreMap":5},[374,375,378],"span",{"class":376,"line":377},"line",1,[374,379,381],{"class":380},"slsVL","{\n",[374,383,385,389,392,396],{"class":376,"line":384},2,[374,386,388],{"class":387},"suiK_","  \"type\"",[374,390,391],{"class":380},": ",[374,393,395],{"class":394},"sfrk1","\"module\"",[374,397,398],{"class":380},",\n",[374,400,402,405],{"class":376,"line":401},3,[374,403,404],{"class":387},"  \"scripts\"",[374,406,407],{"class":380},": {\n",[374,409,411,414,416,419],{"class":376,"line":410},4,[374,412,413],{"class":387},"    \"build\"",[374,415,391],{"class":380},[374,417,418],{"class":394},"\"vite build\"",[374,420,398],{"class":380},[374,422,424,427,429,432],{"class":376,"line":423},5,[374,425,426],{"class":387},"    \"preview\"",[374,428,391],{"class":380},[374,430,431],{"class":394},"\"vite preview\"",[374,433,398],{"class":380},[374,435,437,440,442],{"class":376,"line":436},6,[374,438,439],{"class":387},"    \"dev\"",[374,441,391],{"class":380},[374,443,444],{"class":394},"\"vite dev\"\n",[374,446,448],{"class":376,"line":447},7,[374,449,450],{"class":380},"  },\n",[374,452,454,457],{"class":376,"line":453},8,[374,455,456],{"class":387},"  \"devDependencies\"",[374,458,407],{"class":380},[374,460,462,465,467,470],{"class":376,"line":461},9,[374,463,464],{"class":387},"    \"@preact/preset-vite\"",[374,466,391],{"class":380},[374,468,469],{"class":394},"\"^2.10.3\"",[374,471,398],{"class":380},[374,473,475,478,480,483],{"class":376,"line":474},10,[374,476,477],{"class":387},"    \"@tailwindcss/vite\"",[374,479,391],{"class":380},[374,481,482],{"class":394},"\"^4.1.18\"",[374,484,398],{"class":380},[374,486,488,491,493,496],{"class":376,"line":487},11,[374,489,490],{"class":387},"    \"nitro\"",[374,492,391],{"class":380},[374,494,495],{"class":394},"\"latest\"",[374,497,398],{"class":380},[374,499,501,504,506,509],{"class":376,"line":500},12,[374,502,503],{"class":387},"    \"preact\"",[374,505,391],{"class":380},[374,507,508],{"class":394},"\"^10.28.3\"",[374,510,398],{"class":380},[374,512,514,517,519,522],{"class":376,"line":513},13,[374,515,516],{"class":387},"    \"preact-render-to-string\"",[374,518,391],{"class":380},[374,520,521],{"class":394},"\"^6.6.5\"",[374,523,398],{"class":380},[374,525,527,530,532,534],{"class":376,"line":526},14,[374,528,529],{"class":387},"    \"tailwindcss\"",[374,531,391],{"class":380},[374,533,482],{"class":394},[374,535,398],{"class":380},[374,537,539,542,544],{"class":376,"line":538},15,[374,540,541],{"class":387},"    \"vite\"",[374,543,391],{"class":380},[374,545,546],{"class":394},"\"beta\"\n",[374,548,550],{"class":376,"line":549},16,[374,551,552],{"class":380},"  }\n",[374,554,556],{"class":376,"line":555},17,[374,557,558],{"class":380},"}\n",[364,560,563],{"className":366,"code":561,"filename":562,"language":369,"meta":5,"style":5},"{\n  \"extends\": \"nitro/tsconfig\",\n  \"compilerOptions\": {\n    \"jsx\": \"react-jsx\",\n    \"jsxImportSource\": \"preact\"\n  }\n}\n","tsconfig.json",[371,564,565,569,581,588,600,610,614],{"__ignoreMap":5},[374,566,567],{"class":376,"line":377},[374,568,381],{"class":380},[374,570,571,574,576,579],{"class":376,"line":384},[374,572,573],{"class":387},"  \"extends\"",[374,575,391],{"class":380},[374,577,578],{"class":394},"\"nitro/tsconfig\"",[374,580,398],{"class":380},[374,582,583,586],{"class":376,"line":401},[374,584,585],{"class":387},"  \"compilerOptions\"",[374,587,407],{"class":380},[374,589,590,593,595,598],{"class":376,"line":410},[374,591,592],{"class":387},"    \"jsx\"",[374,594,391],{"class":380},[374,596,597],{"class":394},"\"react-jsx\"",[374,599,398],{"class":380},[374,601,602,605,607],{"class":376,"line":423},[374,603,604],{"class":387},"    \"jsxImportSource\"",[374,606,391],{"class":380},[374,608,609],{"class":394},"\"preact\"\n",[374,611,612],{"class":376,"line":436},[374,613,552],{"class":380},[374,615,616],{"class":376,"line":447},[374,617,558],{"class":380},[364,619,624],{"className":620,"code":621,"filename":622,"language":623,"meta":5,"style":5},"language-js shiki shiki-themes github-light github-dark github-dark","import { defineConfig } from \"vite\";\nimport { nitro } from \"nitro/vite\";\nimport preact from \"@preact/preset-vite\";\n\nexport default defineConfig({\n  plugins: [nitro(), preact()],\n  environments: {\n    client: {\n      build: {\n        rollupOptions: {\n          input: \"./src/entry-client.tsx\",\n        },\n      },\n    },\n  },\n});\n","vite.config.mjs","js",[371,625,626,644,658,672,678,693,710,715,720,725,730,740,745,750,755,759],{"__ignoreMap":5},[374,627,628,632,635,638,641],{"class":376,"line":377},[374,629,631],{"class":630},"so5gQ","import",[374,633,634],{"class":380}," { defineConfig } ",[374,636,637],{"class":630},"from",[374,639,640],{"class":394}," \"vite\"",[374,642,643],{"class":380},";\n",[374,645,646,648,651,653,656],{"class":376,"line":384},[374,647,631],{"class":630},[374,649,650],{"class":380}," { nitro } ",[374,652,637],{"class":630},[374,654,655],{"class":394}," \"nitro/vite\"",[374,657,643],{"class":380},[374,659,660,662,665,667,670],{"class":376,"line":401},[374,661,631],{"class":630},[374,663,664],{"class":380}," preact ",[374,666,637],{"class":630},[374,668,669],{"class":394}," \"@preact/preset-vite\"",[374,671,643],{"class":380},[374,673,674],{"class":376,"line":410},[374,675,677],{"emptyLinePlaceholder":676},true,"\n",[374,679,680,683,686,690],{"class":376,"line":423},[374,681,682],{"class":630},"export",[374,684,685],{"class":630}," default",[374,687,689],{"class":688},"shcOC"," defineConfig",[374,691,692],{"class":380},"({\n",[374,694,695,698,701,704,707],{"class":376,"line":436},[374,696,697],{"class":380},"  plugins: [",[374,699,700],{"class":688},"nitro",[374,702,703],{"class":380},"(), ",[374,705,706],{"class":688},"preact",[374,708,709],{"class":380},"()],\n",[374,711,712],{"class":376,"line":447},[374,713,714],{"class":380},"  environments: {\n",[374,716,717],{"class":376,"line":453},[374,718,719],{"class":380},"    client: {\n",[374,721,722],{"class":376,"line":461},[374,723,724],{"class":380},"      build: {\n",[374,726,727],{"class":376,"line":474},[374,728,729],{"class":380},"        rollupOptions: {\n",[374,731,732,735,738],{"class":376,"line":487},[374,733,734],{"class":380},"          input: ",[374,736,737],{"class":394},"\"./src/entry-client.tsx\"",[374,739,398],{"class":380},[374,741,742],{"class":376,"line":500},[374,743,744],{"class":380},"        },\n",[374,746,747],{"class":376,"line":513},[374,748,749],{"class":380},"      },\n",[374,751,752],{"class":376,"line":526},[374,753,754],{"class":380},"    },\n",[374,756,757],{"class":376,"line":538},[374,758,450],{"class":380},[374,760,761],{"class":376,"line":549},[374,762,763],{"class":380},"});\n",[364,765,770],{"className":766,"code":767,"filename":768,"language":769,"meta":5,"style":5},"language-tsx shiki shiki-themes github-light github-dark github-dark","import { useState } from \"preact/hooks\";\n\nexport function App() {\n  const [count, setCount] = useState(0);\n  return \u003Cbutton onClick={() => setCount((c) => c + 1)}>Count is {count}\u003C/button>;\n}\n","src/app.tsx","tsx",[371,771,772,786,790,803,838,893],{"__ignoreMap":5},[374,773,774,776,779,781,784],{"class":376,"line":377},[374,775,631],{"class":630},[374,777,778],{"class":380}," { useState } ",[374,780,637],{"class":630},[374,782,783],{"class":394}," \"preact/hooks\"",[374,785,643],{"class":380},[374,787,788],{"class":376,"line":384},[374,789,677],{"emptyLinePlaceholder":676},[374,791,792,794,797,800],{"class":376,"line":401},[374,793,682],{"class":630},[374,795,796],{"class":630}," function",[374,798,799],{"class":688}," App",[374,801,802],{"class":380},"() {\n",[374,804,805,808,811,814,817,820,823,826,829,832,835],{"class":376,"line":410},[374,806,807],{"class":630},"  const",[374,809,810],{"class":380}," [",[374,812,813],{"class":387},"count",[374,815,816],{"class":380},", ",[374,818,819],{"class":387},"setCount",[374,821,822],{"class":380},"] ",[374,824,825],{"class":630},"=",[374,827,828],{"class":688}," useState",[374,830,831],{"class":380},"(",[374,833,834],{"class":387},"0",[374,836,837],{"class":380},");\n",[374,839,840,843,846,850,853,855,858,861,864,867,871,874,876,879,882,885,888,890],{"class":376,"line":423},[374,841,842],{"class":630},"  return",[374,844,845],{"class":380}," \u003C",[374,847,849],{"class":848},"sByVh","button",[374,851,852],{"class":688}," onClick",[374,854,825],{"class":630},[374,856,857],{"class":380},"{() ",[374,859,860],{"class":630},"=>",[374,862,863],{"class":688}," setCount",[374,865,866],{"class":380},"((",[374,868,870],{"class":869},"sQHwn","c",[374,872,873],{"class":380},") ",[374,875,860],{"class":630},[374,877,878],{"class":380}," c ",[374,880,881],{"class":630},"+",[374,883,884],{"class":387}," 1",[374,886,887],{"class":380},")}>Count is {count}\u003C/",[374,889,849],{"class":848},[374,891,892],{"class":380},">;\n",[374,894,895],{"class":376,"line":436},[374,896,558],{"class":380},[364,898,901],{"className":766,"code":899,"filename":900,"language":769,"meta":5,"style":5},"import { hydrate } from \"preact\";\nimport { App } from \"./app.tsx\";\n\nfunction main() {\n  hydrate(\u003CApp />, document.querySelector(\"#app\")!);\n}\n\nmain();\n","src/entry-client.tsx",[371,902,903,917,931,935,945,975,979,983],{"__ignoreMap":5},[374,904,905,907,910,912,915],{"class":376,"line":377},[374,906,631],{"class":630},[374,908,909],{"class":380}," { hydrate } ",[374,911,637],{"class":630},[374,913,914],{"class":394}," \"preact\"",[374,916,643],{"class":380},[374,918,919,921,924,926,929],{"class":376,"line":384},[374,920,631],{"class":630},[374,922,923],{"class":380}," { App } ",[374,925,637],{"class":630},[374,927,928],{"class":394}," \"./app.tsx\"",[374,930,643],{"class":380},[374,932,933],{"class":376,"line":401},[374,934,677],{"emptyLinePlaceholder":676},[374,936,937,940,943],{"class":376,"line":410},[374,938,939],{"class":630},"function",[374,941,942],{"class":688}," main",[374,944,802],{"class":380},[374,946,947,950,953,956,959,962,964,967,970,973],{"class":376,"line":423},[374,948,949],{"class":688},"  hydrate",[374,951,952],{"class":380},"(\u003C",[374,954,955],{"class":387},"App",[374,957,958],{"class":380}," />, document.",[374,960,961],{"class":688},"querySelector",[374,963,831],{"class":380},[374,965,966],{"class":394},"\"#app\"",[374,968,969],{"class":380},")",[374,971,972],{"class":630},"!",[374,974,837],{"class":380},[374,976,977],{"class":376,"line":436},[374,978,558],{"class":380},[374,980,981],{"class":376,"line":447},[374,982,677],{"emptyLinePlaceholder":676},[374,984,985,988],{"class":376,"line":453},[374,986,987],{"class":688},"main",[374,989,990],{"class":380},"();\n",[364,992,994],{"className":766,"code":993,"filename":362,"language":769,"meta":5,"style":5},"import \"./styles.css\";\nimport { renderToReadableStream } from \"preact-render-to-string/stream\";\nimport { App } from \"./app.jsx\";\n\nimport clientAssets from \"./entry-client?assets=client\";\nimport serverAssets from \"./entry-server?assets=ssr\";\n\nexport default {\n  async fetch(request: Request) {\n    const url = new URL(request.url);\n    const htmlStream = renderToReadableStream(\u003CRoot url={url} />);\n    return new Response(htmlStream, {\n      headers: { \"Content-Type\": \"text/html;charset=utf-8\" },\n    });\n  },\n};\n\nfunction Root(props: { url: URL }) {\n  const assets = clientAssets.merge(serverAssets);\n  return (\n    \u003Chtml lang=\"en\">\n      \u003Chead>\n        \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n        {assets.css.map((attr: any) => (\n          \u003Clink key={attr.href} rel=\"stylesheet\" {...attr} />\n        ))}\n        {assets.js.map((attr: any) => (\n          \u003Clink key={attr.href} type=\"modulepreload\" {...attr} />\n        ))}\n        \u003Cscript type=\"module\" src={assets.entry} />\n      \u003C/head>\n      \u003Cbody>\n        \u003Ch1 className=\"hero\">Nitro + Vite + Preact\u003C/h1>\n        \u003Cp>URL: {props.url.href}\u003C/p>\n        \u003Cdiv id=\"app\">\n          \u003CApp />\n        \u003C/div>\n      \u003C/body>\n    \u003C/html>\n  );\n}\n",[371,995,996,1005,1019,1032,1036,1050,1064,1068,1077,1099,1119,1143,1156,1172,1177,1181,1186,1190,1218,1237,1245,1265,1276,1304,1329,1363,1369,1391,1418,1423,1446,1456,1466,1489,1504,1522,1531,1541,1550,1560,1566],{"__ignoreMap":5},[374,997,998,1000,1003],{"class":376,"line":377},[374,999,631],{"class":630},[374,1001,1002],{"class":394}," \"./styles.css\"",[374,1004,643],{"class":380},[374,1006,1007,1009,1012,1014,1017],{"class":376,"line":384},[374,1008,631],{"class":630},[374,1010,1011],{"class":380}," { renderToReadableStream } ",[374,1013,637],{"class":630},[374,1015,1016],{"class":394}," \"preact-render-to-string/stream\"",[374,1018,643],{"class":380},[374,1020,1021,1023,1025,1027,1030],{"class":376,"line":401},[374,1022,631],{"class":630},[374,1024,923],{"class":380},[374,1026,637],{"class":630},[374,1028,1029],{"class":394}," \"./app.jsx\"",[374,1031,643],{"class":380},[374,1033,1034],{"class":376,"line":410},[374,1035,677],{"emptyLinePlaceholder":676},[374,1037,1038,1040,1043,1045,1048],{"class":376,"line":423},[374,1039,631],{"class":630},[374,1041,1042],{"class":380}," clientAssets ",[374,1044,637],{"class":630},[374,1046,1047],{"class":394}," \"./entry-client?assets=client\"",[374,1049,643],{"class":380},[374,1051,1052,1054,1057,1059,1062],{"class":376,"line":436},[374,1053,631],{"class":630},[374,1055,1056],{"class":380}," serverAssets ",[374,1058,637],{"class":630},[374,1060,1061],{"class":394}," \"./entry-server?assets=ssr\"",[374,1063,643],{"class":380},[374,1065,1066],{"class":376,"line":447},[374,1067,677],{"emptyLinePlaceholder":676},[374,1069,1070,1072,1074],{"class":376,"line":453},[374,1071,682],{"class":630},[374,1073,685],{"class":630},[374,1075,1076],{"class":380}," {\n",[374,1078,1079,1082,1085,1087,1090,1093,1096],{"class":376,"line":461},[374,1080,1081],{"class":630},"  async",[374,1083,1084],{"class":688}," fetch",[374,1086,831],{"class":380},[374,1088,1089],{"class":869},"request",[374,1091,1092],{"class":630},":",[374,1094,1095],{"class":688}," Request",[374,1097,1098],{"class":380},") {\n",[374,1100,1101,1104,1107,1110,1113,1116],{"class":376,"line":474},[374,1102,1103],{"class":630},"    const",[374,1105,1106],{"class":387}," url",[374,1108,1109],{"class":630}," =",[374,1111,1112],{"class":630}," new",[374,1114,1115],{"class":688}," URL",[374,1117,1118],{"class":380},"(request.url);\n",[374,1120,1121,1123,1126,1128,1131,1133,1136,1138,1140],{"class":376,"line":487},[374,1122,1103],{"class":630},[374,1124,1125],{"class":387}," htmlStream",[374,1127,1109],{"class":630},[374,1129,1130],{"class":688}," renderToReadableStream",[374,1132,952],{"class":380},[374,1134,1135],{"class":387},"Root",[374,1137,1106],{"class":688},[374,1139,825],{"class":630},[374,1141,1142],{"class":380},"{url} />);\n",[374,1144,1145,1148,1150,1153],{"class":376,"line":500},[374,1146,1147],{"class":630},"    return",[374,1149,1112],{"class":630},[374,1151,1152],{"class":688}," Response",[374,1154,1155],{"class":380},"(htmlStream, {\n",[374,1157,1158,1161,1164,1166,1169],{"class":376,"line":513},[374,1159,1160],{"class":380},"      headers: { ",[374,1162,1163],{"class":394},"\"Content-Type\"",[374,1165,391],{"class":380},[374,1167,1168],{"class":394},"\"text/html;charset=utf-8\"",[374,1170,1171],{"class":380}," },\n",[374,1173,1174],{"class":376,"line":526},[374,1175,1176],{"class":380},"    });\n",[374,1178,1179],{"class":376,"line":538},[374,1180,450],{"class":380},[374,1182,1183],{"class":376,"line":549},[374,1184,1185],{"class":380},"};\n",[374,1187,1188],{"class":376,"line":555},[374,1189,677],{"emptyLinePlaceholder":676},[374,1191,1193,1195,1198,1200,1203,1205,1208,1211,1213,1215],{"class":376,"line":1192},18,[374,1194,939],{"class":630},[374,1196,1197],{"class":688}," Root",[374,1199,831],{"class":380},[374,1201,1202],{"class":869},"props",[374,1204,1092],{"class":630},[374,1206,1207],{"class":380}," { ",[374,1209,1210],{"class":869},"url",[374,1212,1092],{"class":630},[374,1214,1115],{"class":688},[374,1216,1217],{"class":380}," }) {\n",[374,1219,1221,1223,1226,1228,1231,1234],{"class":376,"line":1220},19,[374,1222,807],{"class":630},[374,1224,1225],{"class":387}," assets",[374,1227,1109],{"class":630},[374,1229,1230],{"class":380}," clientAssets.",[374,1232,1233],{"class":688},"merge",[374,1235,1236],{"class":380},"(serverAssets);\n",[374,1238,1240,1242],{"class":376,"line":1239},20,[374,1241,842],{"class":630},[374,1243,1244],{"class":380}," (\n",[374,1246,1248,1251,1254,1257,1259,1262],{"class":376,"line":1247},21,[374,1249,1250],{"class":380},"    \u003C",[374,1252,1253],{"class":848},"html",[374,1255,1256],{"class":688}," lang",[374,1258,825],{"class":630},[374,1260,1261],{"class":394},"\"en\"",[374,1263,1264],{"class":380},">\n",[374,1266,1268,1271,1274],{"class":376,"line":1267},22,[374,1269,1270],{"class":380},"      \u003C",[374,1272,1273],{"class":848},"head",[374,1275,1264],{"class":380},[374,1277,1279,1282,1285,1288,1290,1293,1296,1298,1301],{"class":376,"line":1278},23,[374,1280,1281],{"class":380},"        \u003C",[374,1283,1284],{"class":848},"meta",[374,1286,1287],{"class":688}," name",[374,1289,825],{"class":630},[374,1291,1292],{"class":394},"\"viewport\"",[374,1294,1295],{"class":688}," content",[374,1297,825],{"class":630},[374,1299,1300],{"class":394},"\"width=device-width, initial-scale=1.0\"",[374,1302,1303],{"class":380}," />\n",[374,1305,1307,1310,1313,1315,1318,1320,1323,1325,1327],{"class":376,"line":1306},24,[374,1308,1309],{"class":380},"        {assets.css.",[374,1311,1312],{"class":688},"map",[374,1314,866],{"class":380},[374,1316,1317],{"class":869},"attr",[374,1319,1092],{"class":630},[374,1321,1322],{"class":387}," any",[374,1324,873],{"class":380},[374,1326,860],{"class":630},[374,1328,1244],{"class":380},[374,1330,1332,1335,1338,1341,1343,1346,1349,1351,1354,1357,1360],{"class":376,"line":1331},25,[374,1333,1334],{"class":380},"          \u003C",[374,1336,1337],{"class":848},"link",[374,1339,1340],{"class":688}," key",[374,1342,825],{"class":630},[374,1344,1345],{"class":380},"{attr.href} ",[374,1347,1348],{"class":688},"rel",[374,1350,825],{"class":630},[374,1352,1353],{"class":394},"\"stylesheet\"",[374,1355,1356],{"class":380}," {",[374,1358,1359],{"class":630},"...",[374,1361,1362],{"class":380},"attr} />\n",[374,1364,1366],{"class":376,"line":1365},26,[374,1367,1368],{"class":380},"        ))}\n",[374,1370,1372,1375,1377,1379,1381,1383,1385,1387,1389],{"class":376,"line":1371},27,[374,1373,1374],{"class":380},"        {assets.js.",[374,1376,1312],{"class":688},[374,1378,866],{"class":380},[374,1380,1317],{"class":869},[374,1382,1092],{"class":630},[374,1384,1322],{"class":387},[374,1386,873],{"class":380},[374,1388,860],{"class":630},[374,1390,1244],{"class":380},[374,1392,1394,1396,1398,1400,1402,1404,1407,1409,1412,1414,1416],{"class":376,"line":1393},28,[374,1395,1334],{"class":380},[374,1397,1337],{"class":848},[374,1399,1340],{"class":688},[374,1401,825],{"class":630},[374,1403,1345],{"class":380},[374,1405,1406],{"class":688},"type",[374,1408,825],{"class":630},[374,1410,1411],{"class":394},"\"modulepreload\"",[374,1413,1356],{"class":380},[374,1415,1359],{"class":630},[374,1417,1362],{"class":380},[374,1419,1421],{"class":376,"line":1420},29,[374,1422,1368],{"class":380},[374,1424,1426,1428,1431,1434,1436,1438,1441,1443],{"class":376,"line":1425},30,[374,1427,1281],{"class":380},[374,1429,1430],{"class":848},"script",[374,1432,1433],{"class":688}," type",[374,1435,825],{"class":630},[374,1437,395],{"class":394},[374,1439,1440],{"class":688}," src",[374,1442,825],{"class":630},[374,1444,1445],{"class":380},"{assets.entry} />\n",[374,1447,1449,1452,1454],{"class":376,"line":1448},31,[374,1450,1451],{"class":380},"      \u003C/",[374,1453,1273],{"class":848},[374,1455,1264],{"class":380},[374,1457,1459,1461,1464],{"class":376,"line":1458},32,[374,1460,1270],{"class":380},[374,1462,1463],{"class":848},"body",[374,1465,1264],{"class":380},[374,1467,1469,1471,1474,1477,1479,1482,1485,1487],{"class":376,"line":1468},33,[374,1470,1281],{"class":380},[374,1472,1473],{"class":848},"h1",[374,1475,1476],{"class":688}," className",[374,1478,825],{"class":630},[374,1480,1481],{"class":394},"\"hero\"",[374,1483,1484],{"class":380},">Nitro + Vite + Preact\u003C/",[374,1486,1473],{"class":848},[374,1488,1264],{"class":380},[374,1490,1492,1494,1497,1500,1502],{"class":376,"line":1491},34,[374,1493,1281],{"class":380},[374,1495,1496],{"class":848},"p",[374,1498,1499],{"class":380},">URL: {props.url.href}\u003C/",[374,1501,1496],{"class":848},[374,1503,1264],{"class":380},[374,1505,1507,1509,1512,1515,1517,1520],{"class":376,"line":1506},35,[374,1508,1281],{"class":380},[374,1510,1511],{"class":848},"div",[374,1513,1514],{"class":688}," id",[374,1516,825],{"class":630},[374,1518,1519],{"class":394},"\"app\"",[374,1521,1264],{"class":380},[374,1523,1525,1527,1529],{"class":376,"line":1524},36,[374,1526,1334],{"class":380},[374,1528,955],{"class":387},[374,1530,1303],{"class":380},[374,1532,1534,1537,1539],{"class":376,"line":1533},37,[374,1535,1536],{"class":380},"        \u003C/",[374,1538,1511],{"class":848},[374,1540,1264],{"class":380},[374,1542,1544,1546,1548],{"class":376,"line":1543},38,[374,1545,1451],{"class":380},[374,1547,1463],{"class":848},[374,1549,1264],{"class":380},[374,1551,1553,1556,1558],{"class":376,"line":1552},39,[374,1554,1555],{"class":380},"    \u003C/",[374,1557,1253],{"class":848},[374,1559,1264],{"class":380},[374,1561,1563],{"class":376,"line":1562},40,[374,1564,1565],{"class":380},"  );\n",[374,1567,1569],{"class":376,"line":1568},41,[374,1570,558],{"class":380},[364,1572,1577],{"className":1573,"code":1574,"filename":1575,"language":1576,"meta":5,"style":5},"language-css shiki shiki-themes github-light github-dark github-dark",".hero {\n  color: orange;\n}\n\nbutton {\n  background-color: lightskyblue;\n}\n","src/styles.css","css",[371,1578,1579,1586,1598,1602,1606,1612,1624],{"__ignoreMap":5},[374,1580,1581,1584],{"class":376,"line":377},[374,1582,1583],{"class":688},".hero",[374,1585,1076],{"class":380},[374,1587,1588,1591,1593,1596],{"class":376,"line":384},[374,1589,1590],{"class":387},"  color",[374,1592,391],{"class":380},[374,1594,1595],{"class":387},"orange",[374,1597,643],{"class":380},[374,1599,1600],{"class":376,"line":401},[374,1601,558],{"class":380},[374,1603,1604],{"class":376,"line":410},[374,1605,677],{"emptyLinePlaceholder":676},[374,1607,1608,1610],{"class":376,"line":423},[374,1609,849],{"class":848},[374,1611,1076],{"class":380},[374,1613,1614,1617,1619,1622],{"class":376,"line":436},[374,1615,1616],{"class":387},"  background-color",[374,1618,391],{"class":380},[374,1620,1621],{"class":387},"lightskyblue",[374,1623,643],{"class":380},[374,1625,1626],{"class":376,"line":447},[374,1627,558],{"class":380},[1496,1629,1630],{},"Set up server-side rendering (SSR) with Preact, Vite, and Nitro. This setup enables streaming HTML responses, automatic asset management, and client hydration.",[1632,1633,1635],"h2",{"id":1634},"overview","Overview",[1637,1638,1640,1644,1647,1650],"steps",{"level":1639},"4",[1641,1642,1643],"h4",{},"Add the Nitro Vite plugin to your Vite config",[1641,1645,1646],{},"Configure client and server entry points",[1641,1648,1649],{},"Create a server entry that renders your app to HTML",[1641,1651,1652],{},"Create a client entry that hydrates the server-rendered HTML",[1632,1654,1656],{"id":1655},"_1-configure-vite","1. Configure Vite",[1496,1658,1659,1660,1663],{},"Add the Nitro and Preact plugins to your Vite config. Define the ",[371,1661,1662],{},"client"," environment with your client entry point:",[364,1665,1666],{"className":620,"code":621,"filename":622,"language":623,"meta":5,"style":5},[371,1667,1668,1680,1692,1704,1708,1718,1730,1734,1738,1742,1746,1754,1758,1762,1766,1770],{"__ignoreMap":5},[374,1669,1670,1672,1674,1676,1678],{"class":376,"line":377},[374,1671,631],{"class":630},[374,1673,634],{"class":380},[374,1675,637],{"class":630},[374,1677,640],{"class":394},[374,1679,643],{"class":380},[374,1681,1682,1684,1686,1688,1690],{"class":376,"line":384},[374,1683,631],{"class":630},[374,1685,650],{"class":380},[374,1687,637],{"class":630},[374,1689,655],{"class":394},[374,1691,643],{"class":380},[374,1693,1694,1696,1698,1700,1702],{"class":376,"line":401},[374,1695,631],{"class":630},[374,1697,664],{"class":380},[374,1699,637],{"class":630},[374,1701,669],{"class":394},[374,1703,643],{"class":380},[374,1705,1706],{"class":376,"line":410},[374,1707,677],{"emptyLinePlaceholder":676},[374,1709,1710,1712,1714,1716],{"class":376,"line":423},[374,1711,682],{"class":630},[374,1713,685],{"class":630},[374,1715,689],{"class":688},[374,1717,692],{"class":380},[374,1719,1720,1722,1724,1726,1728],{"class":376,"line":436},[374,1721,697],{"class":380},[374,1723,700],{"class":688},[374,1725,703],{"class":380},[374,1727,706],{"class":688},[374,1729,709],{"class":380},[374,1731,1732],{"class":376,"line":447},[374,1733,714],{"class":380},[374,1735,1736],{"class":376,"line":453},[374,1737,719],{"class":380},[374,1739,1740],{"class":376,"line":461},[374,1741,724],{"class":380},[374,1743,1744],{"class":376,"line":474},[374,1745,729],{"class":380},[374,1747,1748,1750,1752],{"class":376,"line":487},[374,1749,734],{"class":380},[374,1751,737],{"class":394},[374,1753,398],{"class":380},[374,1755,1756],{"class":376,"line":500},[374,1757,744],{"class":380},[374,1759,1760],{"class":376,"line":513},[374,1761,749],{"class":380},[374,1763,1764],{"class":376,"line":526},[374,1765,754],{"class":380},[374,1767,1768],{"class":376,"line":538},[374,1769,450],{"class":380},[374,1771,1772],{"class":376,"line":549},[374,1773,763],{"class":380},[1496,1775,1776,1777,1780,1781,1784,1785,1788],{},"The ",[371,1778,1779],{},"environments.client"," configuration tells Vite which file to use as the browser entry point. Nitro automatically detects the server entry from files named ",[371,1782,1783],{},"entry-server"," or ",[371,1786,1787],{},"server"," in common directories.",[1632,1790,1792],{"id":1791},"_2-create-the-app-component","2. Create the App Component",[1496,1794,1795],{},"Create a shared Preact component that runs on both server and client:",[364,1797,1798],{"className":766,"code":767,"filename":768,"language":769,"meta":5,"style":5},[371,1799,1800,1812,1816,1826,1850,1888],{"__ignoreMap":5},[374,1801,1802,1804,1806,1808,1810],{"class":376,"line":377},[374,1803,631],{"class":630},[374,1805,778],{"class":380},[374,1807,637],{"class":630},[374,1809,783],{"class":394},[374,1811,643],{"class":380},[374,1813,1814],{"class":376,"line":384},[374,1815,677],{"emptyLinePlaceholder":676},[374,1817,1818,1820,1822,1824],{"class":376,"line":401},[374,1819,682],{"class":630},[374,1821,796],{"class":630},[374,1823,799],{"class":688},[374,1825,802],{"class":380},[374,1827,1828,1830,1832,1834,1836,1838,1840,1842,1844,1846,1848],{"class":376,"line":410},[374,1829,807],{"class":630},[374,1831,810],{"class":380},[374,1833,813],{"class":387},[374,1835,816],{"class":380},[374,1837,819],{"class":387},[374,1839,822],{"class":380},[374,1841,825],{"class":630},[374,1843,828],{"class":688},[374,1845,831],{"class":380},[374,1847,834],{"class":387},[374,1849,837],{"class":380},[374,1851,1852,1854,1856,1858,1860,1862,1864,1866,1868,1870,1872,1874,1876,1878,1880,1882,1884,1886],{"class":376,"line":423},[374,1853,842],{"class":630},[374,1855,845],{"class":380},[374,1857,849],{"class":848},[374,1859,852],{"class":688},[374,1861,825],{"class":630},[374,1863,857],{"class":380},[374,1865,860],{"class":630},[374,1867,863],{"class":688},[374,1869,866],{"class":380},[374,1871,870],{"class":869},[374,1873,873],{"class":380},[374,1875,860],{"class":630},[374,1877,878],{"class":380},[374,1879,881],{"class":630},[374,1881,884],{"class":387},[374,1883,887],{"class":380},[374,1885,849],{"class":848},[374,1887,892],{"class":380},[374,1889,1890],{"class":376,"line":436},[374,1891,558],{"class":380},[1632,1893,1895],{"id":1894},"_3-create-the-server-entry","3. Create the Server Entry",[1496,1897,1898,1899,1092],{},"The server entry renders your Preact app to a streaming HTML response using ",[371,1900,1901],{},"preact-render-to-string/stream",[364,1903,1904],{"className":766,"code":993,"filename":362,"language":769,"meta":5,"style":5},[371,1905,1906,1914,1926,1938,1942,1954,1966,1970,1978,1994,2008,2028,2038,2050,2054,2058,2062,2066,2088,2102,2108,2122,2130,2150,2170,2194,2198,2218,2242,2246,2264,2272,2280,2298,2310,2324,2332,2340,2348,2356,2360],{"__ignoreMap":5},[374,1907,1908,1910,1912],{"class":376,"line":377},[374,1909,631],{"class":630},[374,1911,1002],{"class":394},[374,1913,643],{"class":380},[374,1915,1916,1918,1920,1922,1924],{"class":376,"line":384},[374,1917,631],{"class":630},[374,1919,1011],{"class":380},[374,1921,637],{"class":630},[374,1923,1016],{"class":394},[374,1925,643],{"class":380},[374,1927,1928,1930,1932,1934,1936],{"class":376,"line":401},[374,1929,631],{"class":630},[374,1931,923],{"class":380},[374,1933,637],{"class":630},[374,1935,1029],{"class":394},[374,1937,643],{"class":380},[374,1939,1940],{"class":376,"line":410},[374,1941,677],{"emptyLinePlaceholder":676},[374,1943,1944,1946,1948,1950,1952],{"class":376,"line":423},[374,1945,631],{"class":630},[374,1947,1042],{"class":380},[374,1949,637],{"class":630},[374,1951,1047],{"class":394},[374,1953,643],{"class":380},[374,1955,1956,1958,1960,1962,1964],{"class":376,"line":436},[374,1957,631],{"class":630},[374,1959,1056],{"class":380},[374,1961,637],{"class":630},[374,1963,1061],{"class":394},[374,1965,643],{"class":380},[374,1967,1968],{"class":376,"line":447},[374,1969,677],{"emptyLinePlaceholder":676},[374,1971,1972,1974,1976],{"class":376,"line":453},[374,1973,682],{"class":630},[374,1975,685],{"class":630},[374,1977,1076],{"class":380},[374,1979,1980,1982,1984,1986,1988,1990,1992],{"class":376,"line":461},[374,1981,1081],{"class":630},[374,1983,1084],{"class":688},[374,1985,831],{"class":380},[374,1987,1089],{"class":869},[374,1989,1092],{"class":630},[374,1991,1095],{"class":688},[374,1993,1098],{"class":380},[374,1995,1996,1998,2000,2002,2004,2006],{"class":376,"line":474},[374,1997,1103],{"class":630},[374,1999,1106],{"class":387},[374,2001,1109],{"class":630},[374,2003,1112],{"class":630},[374,2005,1115],{"class":688},[374,2007,1118],{"class":380},[374,2009,2010,2012,2014,2016,2018,2020,2022,2024,2026],{"class":376,"line":487},[374,2011,1103],{"class":630},[374,2013,1125],{"class":387},[374,2015,1109],{"class":630},[374,2017,1130],{"class":688},[374,2019,952],{"class":380},[374,2021,1135],{"class":387},[374,2023,1106],{"class":688},[374,2025,825],{"class":630},[374,2027,1142],{"class":380},[374,2029,2030,2032,2034,2036],{"class":376,"line":500},[374,2031,1147],{"class":630},[374,2033,1112],{"class":630},[374,2035,1152],{"class":688},[374,2037,1155],{"class":380},[374,2039,2040,2042,2044,2046,2048],{"class":376,"line":513},[374,2041,1160],{"class":380},[374,2043,1163],{"class":394},[374,2045,391],{"class":380},[374,2047,1168],{"class":394},[374,2049,1171],{"class":380},[374,2051,2052],{"class":376,"line":526},[374,2053,1176],{"class":380},[374,2055,2056],{"class":376,"line":538},[374,2057,450],{"class":380},[374,2059,2060],{"class":376,"line":549},[374,2061,1185],{"class":380},[374,2063,2064],{"class":376,"line":555},[374,2065,677],{"emptyLinePlaceholder":676},[374,2067,2068,2070,2072,2074,2076,2078,2080,2082,2084,2086],{"class":376,"line":1192},[374,2069,939],{"class":630},[374,2071,1197],{"class":688},[374,2073,831],{"class":380},[374,2075,1202],{"class":869},[374,2077,1092],{"class":630},[374,2079,1207],{"class":380},[374,2081,1210],{"class":869},[374,2083,1092],{"class":630},[374,2085,1115],{"class":688},[374,2087,1217],{"class":380},[374,2089,2090,2092,2094,2096,2098,2100],{"class":376,"line":1220},[374,2091,807],{"class":630},[374,2093,1225],{"class":387},[374,2095,1109],{"class":630},[374,2097,1230],{"class":380},[374,2099,1233],{"class":688},[374,2101,1236],{"class":380},[374,2103,2104,2106],{"class":376,"line":1239},[374,2105,842],{"class":630},[374,2107,1244],{"class":380},[374,2109,2110,2112,2114,2116,2118,2120],{"class":376,"line":1247},[374,2111,1250],{"class":380},[374,2113,1253],{"class":848},[374,2115,1256],{"class":688},[374,2117,825],{"class":630},[374,2119,1261],{"class":394},[374,2121,1264],{"class":380},[374,2123,2124,2126,2128],{"class":376,"line":1267},[374,2125,1270],{"class":380},[374,2127,1273],{"class":848},[374,2129,1264],{"class":380},[374,2131,2132,2134,2136,2138,2140,2142,2144,2146,2148],{"class":376,"line":1278},[374,2133,1281],{"class":380},[374,2135,1284],{"class":848},[374,2137,1287],{"class":688},[374,2139,825],{"class":630},[374,2141,1292],{"class":394},[374,2143,1295],{"class":688},[374,2145,825],{"class":630},[374,2147,1300],{"class":394},[374,2149,1303],{"class":380},[374,2151,2152,2154,2156,2158,2160,2162,2164,2166,2168],{"class":376,"line":1306},[374,2153,1309],{"class":380},[374,2155,1312],{"class":688},[374,2157,866],{"class":380},[374,2159,1317],{"class":869},[374,2161,1092],{"class":630},[374,2163,1322],{"class":387},[374,2165,873],{"class":380},[374,2167,860],{"class":630},[374,2169,1244],{"class":380},[374,2171,2172,2174,2176,2178,2180,2182,2184,2186,2188,2190,2192],{"class":376,"line":1331},[374,2173,1334],{"class":380},[374,2175,1337],{"class":848},[374,2177,1340],{"class":688},[374,2179,825],{"class":630},[374,2181,1345],{"class":380},[374,2183,1348],{"class":688},[374,2185,825],{"class":630},[374,2187,1353],{"class":394},[374,2189,1356],{"class":380},[374,2191,1359],{"class":630},[374,2193,1362],{"class":380},[374,2195,2196],{"class":376,"line":1365},[374,2197,1368],{"class":380},[374,2199,2200,2202,2204,2206,2208,2210,2212,2214,2216],{"class":376,"line":1371},[374,2201,1374],{"class":380},[374,2203,1312],{"class":688},[374,2205,866],{"class":380},[374,2207,1317],{"class":869},[374,2209,1092],{"class":630},[374,2211,1322],{"class":387},[374,2213,873],{"class":380},[374,2215,860],{"class":630},[374,2217,1244],{"class":380},[374,2219,2220,2222,2224,2226,2228,2230,2232,2234,2236,2238,2240],{"class":376,"line":1393},[374,2221,1334],{"class":380},[374,2223,1337],{"class":848},[374,2225,1340],{"class":688},[374,2227,825],{"class":630},[374,2229,1345],{"class":380},[374,2231,1406],{"class":688},[374,2233,825],{"class":630},[374,2235,1411],{"class":394},[374,2237,1356],{"class":380},[374,2239,1359],{"class":630},[374,2241,1362],{"class":380},[374,2243,2244],{"class":376,"line":1420},[374,2245,1368],{"class":380},[374,2247,2248,2250,2252,2254,2256,2258,2260,2262],{"class":376,"line":1425},[374,2249,1281],{"class":380},[374,2251,1430],{"class":848},[374,2253,1433],{"class":688},[374,2255,825],{"class":630},[374,2257,395],{"class":394},[374,2259,1440],{"class":688},[374,2261,825],{"class":630},[374,2263,1445],{"class":380},[374,2265,2266,2268,2270],{"class":376,"line":1448},[374,2267,1451],{"class":380},[374,2269,1273],{"class":848},[374,2271,1264],{"class":380},[374,2273,2274,2276,2278],{"class":376,"line":1458},[374,2275,1270],{"class":380},[374,2277,1463],{"class":848},[374,2279,1264],{"class":380},[374,2281,2282,2284,2286,2288,2290,2292,2294,2296],{"class":376,"line":1468},[374,2283,1281],{"class":380},[374,2285,1473],{"class":848},[374,2287,1476],{"class":688},[374,2289,825],{"class":630},[374,2291,1481],{"class":394},[374,2293,1484],{"class":380},[374,2295,1473],{"class":848},[374,2297,1264],{"class":380},[374,2299,2300,2302,2304,2306,2308],{"class":376,"line":1491},[374,2301,1281],{"class":380},[374,2303,1496],{"class":848},[374,2305,1499],{"class":380},[374,2307,1496],{"class":848},[374,2309,1264],{"class":380},[374,2311,2312,2314,2316,2318,2320,2322],{"class":376,"line":1506},[374,2313,1281],{"class":380},[374,2315,1511],{"class":848},[374,2317,1514],{"class":688},[374,2319,825],{"class":630},[374,2321,1519],{"class":394},[374,2323,1264],{"class":380},[374,2325,2326,2328,2330],{"class":376,"line":1524},[374,2327,1334],{"class":380},[374,2329,955],{"class":387},[374,2331,1303],{"class":380},[374,2333,2334,2336,2338],{"class":376,"line":1533},[374,2335,1536],{"class":380},[374,2337,1511],{"class":848},[374,2339,1264],{"class":380},[374,2341,2342,2344,2346],{"class":376,"line":1543},[374,2343,1451],{"class":380},[374,2345,1463],{"class":848},[374,2347,1264],{"class":380},[374,2349,2350,2352,2354],{"class":376,"line":1552},[374,2351,1555],{"class":380},[374,2353,1253],{"class":848},[374,2355,1264],{"class":380},[374,2357,2358],{"class":376,"line":1562},[374,2359,1565],{"class":380},[374,2361,2362],{"class":376,"line":1568},[374,2363,558],{"class":380},[1496,2365,2366,2367,2370,2371,2374,2375,2378,2379,2382,2383,2386],{},"Import assets using the ",[371,2368,2369],{},"?assets=client"," and ",[371,2372,2373],{},"?assets=ssr"," query parameters. Nitro collects CSS and JS assets from each entry point, and ",[371,2376,2377],{},"merge()"," combines them into a single manifest. The ",[371,2380,2381],{},"assets"," object provides arrays of stylesheet and script attributes, plus the client entry URL. Use ",[371,2384,2385],{},"renderToReadableStream"," to stream HTML as Preact renders, improving time-to-first-byte.",[1632,2388,2390],{"id":2389},"_4-create-the-client-entry","4. Create the Client Entry",[1496,2392,2393],{},"The client entry hydrates the server-rendered HTML, attaching Preact's event handlers:",[364,2395,2396],{"className":766,"code":899,"filename":900,"language":769,"meta":5,"style":5},[371,2397,2398,2410,2422,2426,2434,2456,2460,2464],{"__ignoreMap":5},[374,2399,2400,2402,2404,2406,2408],{"class":376,"line":377},[374,2401,631],{"class":630},[374,2403,909],{"class":380},[374,2405,637],{"class":630},[374,2407,914],{"class":394},[374,2409,643],{"class":380},[374,2411,2412,2414,2416,2418,2420],{"class":376,"line":384},[374,2413,631],{"class":630},[374,2415,923],{"class":380},[374,2417,637],{"class":630},[374,2419,928],{"class":394},[374,2421,643],{"class":380},[374,2423,2424],{"class":376,"line":401},[374,2425,677],{"emptyLinePlaceholder":676},[374,2427,2428,2430,2432],{"class":376,"line":410},[374,2429,939],{"class":630},[374,2431,942],{"class":688},[374,2433,802],{"class":380},[374,2435,2436,2438,2440,2442,2444,2446,2448,2450,2452,2454],{"class":376,"line":423},[374,2437,949],{"class":688},[374,2439,952],{"class":380},[374,2441,955],{"class":387},[374,2443,958],{"class":380},[374,2445,961],{"class":688},[374,2447,831],{"class":380},[374,2449,966],{"class":394},[374,2451,969],{"class":380},[374,2453,972],{"class":630},[374,2455,837],{"class":380},[374,2457,2458],{"class":376,"line":436},[374,2459,558],{"class":380},[374,2461,2462],{"class":376,"line":447},[374,2463,677],{"emptyLinePlaceholder":676},[374,2465,2466,2468],{"class":376,"line":453},[374,2467,987],{"class":688},[374,2469,990],{"class":380},[1496,2471,1776,2472,2475,2476,2479],{},[371,2473,2474],{},"hydrate"," function attaches Preact to the existing server-rendered DOM inside ",[371,2477,2478],{},"#app"," without re-rendering it.",[1632,2481,2483],{"id":2482},"learn-more","Learn More",[2485,2486,2487,2493],"ul",{},[2488,2489,2490],"li",{},[2491,2492,18],"a",{"href":19},[2488,2494,2495],{},[2491,2496,58],{"href":59},[2498,2499,2500],"style",{},"html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--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 .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .sByVh, html code.shiki .sByVh{--shiki-light:#22863A;--shiki-default:#85E89D;--shiki-dark:#85E89D}html pre.shiki code .sQHwn, html code.shiki .sQHwn{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#FFAB70}",{"title":5,"searchDepth":384,"depth":384,"links":2502},[2503,2504,2505,2506,2507,2508],{"id":1634,"depth":384,"text":1635},{"id":1655,"depth":384,"text":1656},{"id":1791,"depth":384,"text":1792},{"id":1894,"depth":384,"text":1895},{"id":2389,"depth":384,"text":2390},{"id":2482,"depth":384,"text":2483},"md","i-logos-preact",{"automd":676},{},{"title":322,"description":323},"examples/vite-ssr-preact/README","sxOLFttEHEeMRQu_ss-3JRAwQZt-If4Tgv-5nhei2Zg",[2517,2520],{"title":318,"path":2518,"stem":2519,"description":319,"children":-1},"/examples/vite-ssr-html","examples/vite-ssr-html/README",{"title":326,"path":2521,"stem":2522,"description":327,"children":-1},"/examples/vite-ssr-react","examples/vite-ssr-react/README",1771523835641]