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