[{"data":1,"prerenderedAt":2716},["ShallowReactive",2],{"navigation":3,"examples-nav":224,"-examples-vite-ssr-solid":353,"-examples-vite-ssr-solid-surround":2709},[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":330,"body":355,"category":278,"description":331,"extension":2702,"icon":2703,"meta":2704,"navigation":2705,"path":332,"seo":2706,"stem":2707,"__hash__":2708},"examples/examples/vite-ssr-solid/README.md",{"type":356,"value":357,"toc":2694},"minimark",[358,1748,1756,1761,1778,1782,1793,1928,1940,1944,1947,2087,2098,2102,2111,2561,2578,2582,2585,2651,2665,2669,2690],[359,360,363,508,567,685,869,951,1513],"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    \"dev\": \"vite dev\"\n  },\n  \"devDependencies\": {\n    \"nitro\": \"latest\",\n    \"solid-js\": \"^1.9.11\",\n    \"vite\": \"beta\",\n    \"vite-plugin-solid\": \"^2.11.10\"\n  }\n}\n","package.json","json",[371,372,373,382,399,408,421,432,438,446,459,472,485,496,502],"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],{"class":376,"line":423},5,[374,425,426],{"class":387},"    \"dev\"",[374,428,391],{"class":380},[374,430,431],{"class":394},"\"vite dev\"\n",[374,433,435],{"class":376,"line":434},6,[374,436,437],{"class":380},"  },\n",[374,439,441,444],{"class":376,"line":440},7,[374,442,443],{"class":387},"  \"devDependencies\"",[374,445,407],{"class":380},[374,447,449,452,454,457],{"class":376,"line":448},8,[374,450,451],{"class":387},"    \"nitro\"",[374,453,391],{"class":380},[374,455,456],{"class":394},"\"latest\"",[374,458,398],{"class":380},[374,460,462,465,467,470],{"class":376,"line":461},9,[374,463,464],{"class":387},"    \"solid-js\"",[374,466,391],{"class":380},[374,468,469],{"class":394},"\"^1.9.11\"",[374,471,398],{"class":380},[374,473,475,478,480,483],{"class":376,"line":474},10,[374,476,477],{"class":387},"    \"vite\"",[374,479,391],{"class":380},[374,481,482],{"class":394},"\"beta\"",[374,484,398],{"class":380},[374,486,488,491,493],{"class":376,"line":487},11,[374,489,490],{"class":387},"    \"vite-plugin-solid\"",[374,492,391],{"class":380},[374,494,495],{"class":394},"\"^2.11.10\"\n",[374,497,499],{"class":376,"line":498},12,[374,500,501],{"class":380},"  }\n",[374,503,505],{"class":376,"line":504},13,[374,506,507],{"class":380},"}\n",[364,509,512],{"className":366,"code":510,"filename":511,"language":369,"meta":5,"style":5},"{\n  \"extends\": \"nitro/tsconfig\",\n  \"compilerOptions\": {\n    \"jsx\": \"preserve\",\n    \"jsxImportSource\": \"solid-js\"\n  }\n}\n","tsconfig.json",[371,513,514,518,530,537,549,559,563],{"__ignoreMap":5},[374,515,516],{"class":376,"line":377},[374,517,381],{"class":380},[374,519,520,523,525,528],{"class":376,"line":384},[374,521,522],{"class":387},"  \"extends\"",[374,524,391],{"class":380},[374,526,527],{"class":394},"\"nitro/tsconfig\"",[374,529,398],{"class":380},[374,531,532,535],{"class":376,"line":401},[374,533,534],{"class":387},"  \"compilerOptions\"",[374,536,407],{"class":380},[374,538,539,542,544,547],{"class":376,"line":410},[374,540,541],{"class":387},"    \"jsx\"",[374,543,391],{"class":380},[374,545,546],{"class":394},"\"preserve\"",[374,548,398],{"class":380},[374,550,551,554,556],{"class":376,"line":423},[374,552,553],{"class":387},"    \"jsxImportSource\"",[374,555,391],{"class":380},[374,557,558],{"class":394},"\"solid-js\"\n",[374,560,561],{"class":376,"line":434},[374,562,501],{"class":380},[374,564,565],{"class":376,"line":440},[374,566,507],{"class":380},[364,568,573],{"className":569,"code":570,"filename":571,"language":572,"meta":5,"style":5},"language-js shiki shiki-themes github-light github-dark github-dark","import solid from \"vite-plugin-solid\";\nimport { defineConfig } from \"vite\";\nimport { nitro } from \"nitro/vite\";\n\nexport default defineConfig({\n  plugins: [solid({ ssr: true }), nitro()],\n  esbuild: { jsx: \"preserve\", jsxImportSource: \"solid-js\" },\n});\n","vite.config.mjs","js",[371,574,575,593,607,621,627,642,664,680],{"__ignoreMap":5},[374,576,577,581,584,587,590],{"class":376,"line":377},[374,578,580],{"class":579},"so5gQ","import",[374,582,583],{"class":380}," solid ",[374,585,586],{"class":579},"from",[374,588,589],{"class":394}," \"vite-plugin-solid\"",[374,591,592],{"class":380},";\n",[374,594,595,597,600,602,605],{"class":376,"line":384},[374,596,580],{"class":579},[374,598,599],{"class":380}," { defineConfig } ",[374,601,586],{"class":579},[374,603,604],{"class":394}," \"vite\"",[374,606,592],{"class":380},[374,608,609,611,614,616,619],{"class":376,"line":401},[374,610,580],{"class":579},[374,612,613],{"class":380}," { nitro } ",[374,615,586],{"class":579},[374,617,618],{"class":394}," \"nitro/vite\"",[374,620,592],{"class":380},[374,622,623],{"class":376,"line":410},[374,624,626],{"emptyLinePlaceholder":625},true,"\n",[374,628,629,632,635,639],{"class":376,"line":423},[374,630,631],{"class":579},"export",[374,633,634],{"class":579}," default",[374,636,638],{"class":637},"shcOC"," defineConfig",[374,640,641],{"class":380},"({\n",[374,643,644,647,650,653,655,658,661],{"class":376,"line":434},[374,645,646],{"class":380},"  plugins: [",[374,648,649],{"class":637},"solid",[374,651,652],{"class":380},"({ ssr: ",[374,654,361],{"class":387},[374,656,657],{"class":380}," }), ",[374,659,660],{"class":637},"nitro",[374,662,663],{"class":380},"()],\n",[374,665,666,669,671,674,677],{"class":376,"line":440},[374,667,668],{"class":380},"  esbuild: { jsx: ",[374,670,546],{"class":394},[374,672,673],{"class":380},", jsxImportSource: ",[374,675,676],{"class":394},"\"solid-js\"",[374,678,679],{"class":380}," },\n",[374,681,682],{"class":376,"line":448},[374,683,684],{"class":380},"});\n",[364,686,691],{"className":687,"code":688,"filename":689,"language":690,"meta":5,"style":5},"language-tsx shiki shiki-themes github-light github-dark github-dark","import { createSignal } from \"solid-js\";\n\nexport function App() {\n  const [count, setCount] = createSignal(0);\n\n  return (\n    \u003Cdiv>\n      \u003Ch1>Hello, Solid!\u003C/h1>\n      \u003Cbutton onClick={() => setCount((count) => count + 1)}>Count: {count()}\u003C/button>\n    \u003C/div>\n  );\n}\n","src/app.tsx","tsx",[371,692,693,707,711,724,759,763,771,783,798,851,860,865],{"__ignoreMap":5},[374,694,695,697,700,702,705],{"class":376,"line":377},[374,696,580],{"class":579},[374,698,699],{"class":380}," { createSignal } ",[374,701,586],{"class":579},[374,703,704],{"class":394}," \"solid-js\"",[374,706,592],{"class":380},[374,708,709],{"class":376,"line":384},[374,710,626],{"emptyLinePlaceholder":625},[374,712,713,715,718,721],{"class":376,"line":401},[374,714,631],{"class":579},[374,716,717],{"class":579}," function",[374,719,720],{"class":637}," App",[374,722,723],{"class":380},"() {\n",[374,725,726,729,732,735,738,741,744,747,750,753,756],{"class":376,"line":410},[374,727,728],{"class":579},"  const",[374,730,731],{"class":380}," [",[374,733,734],{"class":387},"count",[374,736,737],{"class":380},", ",[374,739,740],{"class":387},"setCount",[374,742,743],{"class":380},"] ",[374,745,746],{"class":579},"=",[374,748,749],{"class":637}," createSignal",[374,751,752],{"class":380},"(",[374,754,755],{"class":387},"0",[374,757,758],{"class":380},");\n",[374,760,761],{"class":376,"line":423},[374,762,626],{"emptyLinePlaceholder":625},[374,764,765,768],{"class":376,"line":434},[374,766,767],{"class":579},"  return",[374,769,770],{"class":380}," (\n",[374,772,773,776,780],{"class":376,"line":440},[374,774,775],{"class":380},"    \u003C",[374,777,779],{"class":778},"sByVh","div",[374,781,782],{"class":380},">\n",[374,784,785,788,791,794,796],{"class":376,"line":448},[374,786,787],{"class":380},"      \u003C",[374,789,790],{"class":778},"h1",[374,792,793],{"class":380},">Hello, Solid!\u003C/",[374,795,790],{"class":778},[374,797,782],{"class":380},[374,799,800,802,805,808,810,813,816,819,822,825,828,830,833,836,839,842,844,847,849],{"class":376,"line":461},[374,801,787],{"class":380},[374,803,804],{"class":778},"button",[374,806,807],{"class":637}," onClick",[374,809,746],{"class":579},[374,811,812],{"class":380},"{() ",[374,814,815],{"class":579},"=>",[374,817,818],{"class":637}," setCount",[374,820,821],{"class":380},"((",[374,823,734],{"class":824},"sQHwn",[374,826,827],{"class":380},") ",[374,829,815],{"class":579},[374,831,832],{"class":380}," count ",[374,834,835],{"class":579},"+",[374,837,838],{"class":387}," 1",[374,840,841],{"class":380},")}>Count: {",[374,843,734],{"class":637},[374,845,846],{"class":380},"()}\u003C/",[374,848,804],{"class":778},[374,850,782],{"class":380},[374,852,853,856,858],{"class":376,"line":474},[374,854,855],{"class":380},"    \u003C/",[374,857,779],{"class":778},[374,859,782],{"class":380},[374,861,862],{"class":376,"line":487},[374,863,864],{"class":380},"  );\n",[374,866,867],{"class":376,"line":498},[374,868,507],{"class":380},[364,870,873],{"className":687,"code":871,"filename":872,"language":690,"meta":5,"style":5},"import { hydrate } from \"solid-js/web\";\nimport \"./styles.css\";\nimport { App } from \"./app.jsx\";\n\nhydrate(() => \u003CApp />, document.querySelector(\"#app\")!);\n","src/entry-client.tsx",[371,874,875,889,898,912,916],{"__ignoreMap":5},[374,876,877,879,882,884,887],{"class":376,"line":377},[374,878,580],{"class":579},[374,880,881],{"class":380}," { hydrate } ",[374,883,586],{"class":579},[374,885,886],{"class":394}," \"solid-js/web\"",[374,888,592],{"class":380},[374,890,891,893,896],{"class":376,"line":384},[374,892,580],{"class":579},[374,894,895],{"class":394}," \"./styles.css\"",[374,897,592],{"class":380},[374,899,900,902,905,907,910],{"class":376,"line":401},[374,901,580],{"class":579},[374,903,904],{"class":380}," { App } ",[374,906,586],{"class":579},[374,908,909],{"class":394}," \"./app.jsx\"",[374,911,592],{"class":380},[374,913,914],{"class":376,"line":410},[374,915,626],{"emptyLinePlaceholder":625},[374,917,918,921,924,926,929,932,935,938,940,943,946,949],{"class":376,"line":423},[374,919,920],{"class":637},"hydrate",[374,922,923],{"class":380},"(() ",[374,925,815],{"class":579},[374,927,928],{"class":380}," \u003C",[374,930,931],{"class":387},"App",[374,933,934],{"class":380}," />, document.",[374,936,937],{"class":637},"querySelector",[374,939,752],{"class":380},[374,941,942],{"class":394},"\"#app\"",[374,944,945],{"class":380},")",[374,947,948],{"class":579},"!",[374,950,758],{"class":380},[364,952,954],{"className":687,"code":953,"filename":362,"language":690,"meta":5,"style":5},"import { renderToStringAsync, HydrationScript } from \"solid-js/web\";\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(req: Request): Promise\u003CResponse> {\n    const appHTML = await renderToStringAsync(() => \u003CApp />);\n    const rootHTML = await renderToStringAsync(() => \u003CRoot appHTML={appHTML} />);\n    return new Response(rootHTML, {\n      headers: { \"Content-Type\": \"text/html\" },\n    });\n  },\n};\n\nfunction Root(props: { appHTML?: string }) {\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      \u003C/head>\n      \u003Cbody>\n        \u003Cdiv id=\"app\" innerHTML={props.appHTML || \"\"} />\n        \u003CHydrationScript />\n        \u003Cscript type=\"module\" src={assets.entry} />\n      \u003C/body>\n    \u003C/html>\n  );\n}\n",[371,955,956,969,981,985,999,1013,1017,1026,1061,1089,1118,1132,1147,1152,1157,1163,1168,1199,1218,1225,1243,1253,1281,1306,1340,1346,1368,1395,1400,1410,1420,1452,1462,1485,1494,1503,1508],{"__ignoreMap":5},[374,957,958,960,963,965,967],{"class":376,"line":377},[374,959,580],{"class":579},[374,961,962],{"class":380}," { renderToStringAsync, HydrationScript } ",[374,964,586],{"class":579},[374,966,886],{"class":394},[374,968,592],{"class":380},[374,970,971,973,975,977,979],{"class":376,"line":384},[374,972,580],{"class":579},[374,974,904],{"class":380},[374,976,586],{"class":579},[374,978,909],{"class":394},[374,980,592],{"class":380},[374,982,983],{"class":376,"line":401},[374,984,626],{"emptyLinePlaceholder":625},[374,986,987,989,992,994,997],{"class":376,"line":410},[374,988,580],{"class":579},[374,990,991],{"class":380}," clientAssets ",[374,993,586],{"class":579},[374,995,996],{"class":394}," \"./entry-client?assets=client\"",[374,998,592],{"class":380},[374,1000,1001,1003,1006,1008,1011],{"class":376,"line":423},[374,1002,580],{"class":579},[374,1004,1005],{"class":380}," serverAssets ",[374,1007,586],{"class":579},[374,1009,1010],{"class":394}," \"./entry-server?assets=ssr\"",[374,1012,592],{"class":380},[374,1014,1015],{"class":376,"line":434},[374,1016,626],{"emptyLinePlaceholder":625},[374,1018,1019,1021,1023],{"class":376,"line":440},[374,1020,631],{"class":579},[374,1022,634],{"class":579},[374,1024,1025],{"class":380}," {\n",[374,1027,1028,1031,1034,1036,1039,1042,1045,1047,1049,1052,1055,1058],{"class":376,"line":448},[374,1029,1030],{"class":579},"  async",[374,1032,1033],{"class":637}," fetch",[374,1035,752],{"class":380},[374,1037,1038],{"class":824},"req",[374,1040,1041],{"class":579},":",[374,1043,1044],{"class":637}," Request",[374,1046,945],{"class":380},[374,1048,1041],{"class":579},[374,1050,1051],{"class":637}," Promise",[374,1053,1054],{"class":380},"\u003C",[374,1056,1057],{"class":637},"Response",[374,1059,1060],{"class":380},"> {\n",[374,1062,1063,1066,1069,1072,1075,1078,1080,1082,1084,1086],{"class":376,"line":461},[374,1064,1065],{"class":579},"    const",[374,1067,1068],{"class":387}," appHTML",[374,1070,1071],{"class":579}," =",[374,1073,1074],{"class":579}," await",[374,1076,1077],{"class":637}," renderToStringAsync",[374,1079,923],{"class":380},[374,1081,815],{"class":579},[374,1083,928],{"class":380},[374,1085,931],{"class":387},[374,1087,1088],{"class":380}," />);\n",[374,1090,1091,1093,1096,1098,1100,1102,1104,1106,1108,1111,1113,1115],{"class":376,"line":474},[374,1092,1065],{"class":579},[374,1094,1095],{"class":387}," rootHTML",[374,1097,1071],{"class":579},[374,1099,1074],{"class":579},[374,1101,1077],{"class":637},[374,1103,923],{"class":380},[374,1105,815],{"class":579},[374,1107,928],{"class":380},[374,1109,1110],{"class":387},"Root",[374,1112,1068],{"class":637},[374,1114,746],{"class":579},[374,1116,1117],{"class":380},"{appHTML} />);\n",[374,1119,1120,1123,1126,1129],{"class":376,"line":487},[374,1121,1122],{"class":579},"    return",[374,1124,1125],{"class":579}," new",[374,1127,1128],{"class":637}," Response",[374,1130,1131],{"class":380},"(rootHTML, {\n",[374,1133,1134,1137,1140,1142,1145],{"class":376,"line":498},[374,1135,1136],{"class":380},"      headers: { ",[374,1138,1139],{"class":394},"\"Content-Type\"",[374,1141,391],{"class":380},[374,1143,1144],{"class":394},"\"text/html\"",[374,1146,679],{"class":380},[374,1148,1149],{"class":376,"line":504},[374,1150,1151],{"class":380},"    });\n",[374,1153,1155],{"class":376,"line":1154},14,[374,1156,437],{"class":380},[374,1158,1160],{"class":376,"line":1159},15,[374,1161,1162],{"class":380},"};\n",[374,1164,1166],{"class":376,"line":1165},16,[374,1167,626],{"emptyLinePlaceholder":625},[374,1169,1171,1174,1177,1179,1182,1184,1187,1190,1193,1196],{"class":376,"line":1170},17,[374,1172,1173],{"class":579},"function",[374,1175,1176],{"class":637}," Root",[374,1178,752],{"class":380},[374,1180,1181],{"class":824},"props",[374,1183,1041],{"class":579},[374,1185,1186],{"class":380}," { ",[374,1188,1189],{"class":824},"appHTML",[374,1191,1192],{"class":579},"?:",[374,1194,1195],{"class":387}," string",[374,1197,1198],{"class":380}," }) {\n",[374,1200,1202,1204,1207,1209,1212,1215],{"class":376,"line":1201},18,[374,1203,728],{"class":579},[374,1205,1206],{"class":387}," assets",[374,1208,1071],{"class":579},[374,1210,1211],{"class":380}," clientAssets.",[374,1213,1214],{"class":637},"merge",[374,1216,1217],{"class":380},"(serverAssets);\n",[374,1219,1221,1223],{"class":376,"line":1220},19,[374,1222,767],{"class":579},[374,1224,770],{"class":380},[374,1226,1228,1230,1233,1236,1238,1241],{"class":376,"line":1227},20,[374,1229,775],{"class":380},[374,1231,1232],{"class":778},"html",[374,1234,1235],{"class":637}," lang",[374,1237,746],{"class":579},[374,1239,1240],{"class":394},"\"en\"",[374,1242,782],{"class":380},[374,1244,1246,1248,1251],{"class":376,"line":1245},21,[374,1247,787],{"class":380},[374,1249,1250],{"class":778},"head",[374,1252,782],{"class":380},[374,1254,1256,1259,1262,1265,1267,1270,1273,1275,1278],{"class":376,"line":1255},22,[374,1257,1258],{"class":380},"        \u003C",[374,1260,1261],{"class":778},"meta",[374,1263,1264],{"class":637}," name",[374,1266,746],{"class":579},[374,1268,1269],{"class":394},"\"viewport\"",[374,1271,1272],{"class":637}," content",[374,1274,746],{"class":579},[374,1276,1277],{"class":394},"\"width=device-width, initial-scale=1.0\"",[374,1279,1280],{"class":380}," />\n",[374,1282,1284,1287,1290,1292,1295,1297,1300,1302,1304],{"class":376,"line":1283},23,[374,1285,1286],{"class":380},"        {assets.css.",[374,1288,1289],{"class":637},"map",[374,1291,821],{"class":380},[374,1293,1294],{"class":824},"attr",[374,1296,1041],{"class":579},[374,1298,1299],{"class":387}," any",[374,1301,827],{"class":380},[374,1303,815],{"class":579},[374,1305,770],{"class":380},[374,1307,1309,1312,1315,1318,1320,1323,1326,1328,1331,1334,1337],{"class":376,"line":1308},24,[374,1310,1311],{"class":380},"          \u003C",[374,1313,1314],{"class":778},"link",[374,1316,1317],{"class":637}," key",[374,1319,746],{"class":579},[374,1321,1322],{"class":380},"{attr.href} ",[374,1324,1325],{"class":637},"rel",[374,1327,746],{"class":579},[374,1329,1330],{"class":394},"\"stylesheet\"",[374,1332,1333],{"class":380}," {",[374,1335,1336],{"class":579},"...",[374,1338,1339],{"class":380},"attr} />\n",[374,1341,1343],{"class":376,"line":1342},25,[374,1344,1345],{"class":380},"        ))}\n",[374,1347,1349,1352,1354,1356,1358,1360,1362,1364,1366],{"class":376,"line":1348},26,[374,1350,1351],{"class":380},"        {assets.js.",[374,1353,1289],{"class":637},[374,1355,821],{"class":380},[374,1357,1294],{"class":824},[374,1359,1041],{"class":579},[374,1361,1299],{"class":387},[374,1363,827],{"class":380},[374,1365,815],{"class":579},[374,1367,770],{"class":380},[374,1369,1371,1373,1375,1377,1379,1381,1384,1386,1389,1391,1393],{"class":376,"line":1370},27,[374,1372,1311],{"class":380},[374,1374,1314],{"class":778},[374,1376,1317],{"class":637},[374,1378,746],{"class":579},[374,1380,1322],{"class":380},[374,1382,1383],{"class":637},"type",[374,1385,746],{"class":579},[374,1387,1388],{"class":394},"\"modulepreload\"",[374,1390,1333],{"class":380},[374,1392,1336],{"class":579},[374,1394,1339],{"class":380},[374,1396,1398],{"class":376,"line":1397},28,[374,1399,1345],{"class":380},[374,1401,1403,1406,1408],{"class":376,"line":1402},29,[374,1404,1405],{"class":380},"      \u003C/",[374,1407,1250],{"class":778},[374,1409,782],{"class":380},[374,1411,1413,1415,1418],{"class":376,"line":1412},30,[374,1414,787],{"class":380},[374,1416,1417],{"class":778},"body",[374,1419,782],{"class":380},[374,1421,1423,1425,1427,1430,1432,1435,1438,1440,1443,1446,1449],{"class":376,"line":1422},31,[374,1424,1258],{"class":380},[374,1426,779],{"class":778},[374,1428,1429],{"class":637}," id",[374,1431,746],{"class":579},[374,1433,1434],{"class":394},"\"app\"",[374,1436,1437],{"class":637}," innerHTML",[374,1439,746],{"class":579},[374,1441,1442],{"class":380},"{props.appHTML ",[374,1444,1445],{"class":579},"||",[374,1447,1448],{"class":394}," \"\"",[374,1450,1451],{"class":380},"} />\n",[374,1453,1455,1457,1460],{"class":376,"line":1454},32,[374,1456,1258],{"class":380},[374,1458,1459],{"class":387},"HydrationScript",[374,1461,1280],{"class":380},[374,1463,1465,1467,1470,1473,1475,1477,1480,1482],{"class":376,"line":1464},33,[374,1466,1258],{"class":380},[374,1468,1469],{"class":778},"script",[374,1471,1472],{"class":637}," type",[374,1474,746],{"class":579},[374,1476,395],{"class":394},[374,1478,1479],{"class":637}," src",[374,1481,746],{"class":579},[374,1483,1484],{"class":380},"{assets.entry} />\n",[374,1486,1488,1490,1492],{"class":376,"line":1487},34,[374,1489,1405],{"class":380},[374,1491,1417],{"class":778},[374,1493,782],{"class":380},[374,1495,1497,1499,1501],{"class":376,"line":1496},35,[374,1498,855],{"class":380},[374,1500,1232],{"class":778},[374,1502,782],{"class":380},[374,1504,1506],{"class":376,"line":1505},36,[374,1507,864],{"class":380},[374,1509,1511],{"class":376,"line":1510},37,[374,1512,507],{"class":380},[364,1514,1519],{"className":1515,"code":1516,"filename":1517,"language":1518,"meta":5,"style":5},"language-css shiki shiki-themes github-light github-dark github-dark","div {\n  font-family: system-ui, Arial, sans-serif;\n  font-size: 20px;\n  margin-bottom: 10px;\n}\n\nbutton {\n  background-color: rgb(147 197 253);\n  color: rgb(15 23 42);\n  border: none;\n  padding: 10px 20px;\n  font-size: 16px;\n  cursor: pointer;\n  border-radius: 5px;\n}\n\nbutton:hover {\n  background-color: rgb(191 219 254);\n}\n","src/styles.css","css",[371,1520,1521,1527,1549,1564,1578,1582,1586,1592,1615,1637,1649,1667,1680,1692,1706,1710,1714,1723,1744],{"__ignoreMap":5},[374,1522,1523,1525],{"class":376,"line":377},[374,1524,779],{"class":778},[374,1526,1025],{"class":380},[374,1528,1529,1532,1534,1537,1539,1542,1544,1547],{"class":376,"line":384},[374,1530,1531],{"class":387},"  font-family",[374,1533,391],{"class":380},[374,1535,1536],{"class":387},"system-ui",[374,1538,737],{"class":380},[374,1540,1541],{"class":387},"Arial",[374,1543,737],{"class":380},[374,1545,1546],{"class":387},"sans-serif",[374,1548,592],{"class":380},[374,1550,1551,1554,1556,1559,1562],{"class":376,"line":401},[374,1552,1553],{"class":387},"  font-size",[374,1555,391],{"class":380},[374,1557,1558],{"class":387},"20",[374,1560,1561],{"class":579},"px",[374,1563,592],{"class":380},[374,1565,1566,1569,1571,1574,1576],{"class":376,"line":410},[374,1567,1568],{"class":387},"  margin-bottom",[374,1570,391],{"class":380},[374,1572,1573],{"class":387},"10",[374,1575,1561],{"class":579},[374,1577,592],{"class":380},[374,1579,1580],{"class":376,"line":423},[374,1581,507],{"class":380},[374,1583,1584],{"class":376,"line":434},[374,1585,626],{"emptyLinePlaceholder":625},[374,1587,1588,1590],{"class":376,"line":440},[374,1589,804],{"class":778},[374,1591,1025],{"class":380},[374,1593,1594,1597,1599,1602,1604,1607,1610,1613],{"class":376,"line":448},[374,1595,1596],{"class":387},"  background-color",[374,1598,391],{"class":380},[374,1600,1601],{"class":387},"rgb",[374,1603,752],{"class":380},[374,1605,1606],{"class":387},"147",[374,1608,1609],{"class":387}," 197",[374,1611,1612],{"class":387}," 253",[374,1614,758],{"class":380},[374,1616,1617,1620,1622,1624,1626,1629,1632,1635],{"class":376,"line":461},[374,1618,1619],{"class":387},"  color",[374,1621,391],{"class":380},[374,1623,1601],{"class":387},[374,1625,752],{"class":380},[374,1627,1628],{"class":387},"15",[374,1630,1631],{"class":387}," 23",[374,1633,1634],{"class":387}," 42",[374,1636,758],{"class":380},[374,1638,1639,1642,1644,1647],{"class":376,"line":474},[374,1640,1641],{"class":387},"  border",[374,1643,391],{"class":380},[374,1645,1646],{"class":387},"none",[374,1648,592],{"class":380},[374,1650,1651,1654,1656,1658,1660,1663,1665],{"class":376,"line":487},[374,1652,1653],{"class":387},"  padding",[374,1655,391],{"class":380},[374,1657,1573],{"class":387},[374,1659,1561],{"class":579},[374,1661,1662],{"class":387}," 20",[374,1664,1561],{"class":579},[374,1666,592],{"class":380},[374,1668,1669,1671,1673,1676,1678],{"class":376,"line":498},[374,1670,1553],{"class":387},[374,1672,391],{"class":380},[374,1674,1675],{"class":387},"16",[374,1677,1561],{"class":579},[374,1679,592],{"class":380},[374,1681,1682,1685,1687,1690],{"class":376,"line":504},[374,1683,1684],{"class":387},"  cursor",[374,1686,391],{"class":380},[374,1688,1689],{"class":387},"pointer",[374,1691,592],{"class":380},[374,1693,1694,1697,1699,1702,1704],{"class":376,"line":1154},[374,1695,1696],{"class":387},"  border-radius",[374,1698,391],{"class":380},[374,1700,1701],{"class":387},"5",[374,1703,1561],{"class":579},[374,1705,592],{"class":380},[374,1707,1708],{"class":376,"line":1159},[374,1709,507],{"class":380},[374,1711,1712],{"class":376,"line":1165},[374,1713,626],{"emptyLinePlaceholder":625},[374,1715,1716,1718,1721],{"class":376,"line":1170},[374,1717,804],{"class":778},[374,1719,1720],{"class":637},":hover",[374,1722,1025],{"class":380},[374,1724,1725,1727,1729,1731,1733,1736,1739,1742],{"class":376,"line":1201},[374,1726,1596],{"class":387},[374,1728,391],{"class":380},[374,1730,1601],{"class":387},[374,1732,752],{"class":380},[374,1734,1735],{"class":387},"191",[374,1737,1738],{"class":387}," 219",[374,1740,1741],{"class":387}," 254",[374,1743,758],{"class":380},[374,1745,1746],{"class":376,"line":1220},[374,1747,507],{"class":380},[1749,1750,1751,1752,1755],"p",{},"Set up server-side rendering (SSR) with SolidJS, Vite, and Nitro. This setup uses ",[371,1753,1754],{},"renderToStringAsync"," for HTML generation and supports client hydration.",[1757,1758,1760],"h2",{"id":1759},"overview","Overview",[1762,1763,1765,1769,1772,1775],"steps",{"level":1764},"4",[1766,1767,1768],"h4",{},"Add the Nitro Vite plugin to your Vite config",[1766,1770,1771],{},"Configure client and server entry points",[1766,1773,1774],{},"Create a server entry that renders your app to HTML",[1766,1776,1777],{},"Create a client entry that hydrates the server-rendered HTML",[1757,1779,1781],{"id":1780},"_1-configure-vite","1. Configure Vite",[1749,1783,1784,1785,1788,1789,1792],{},"Add the Nitro and SolidJS plugins to your Vite config. SolidJS requires explicit JSX configuration and both ",[371,1786,1787],{},"ssr"," and ",[371,1790,1791],{},"client"," environments:",[364,1794,1796],{"className":569,"code":1795,"filename":571,"language":572,"meta":5,"style":5},"import solid from \"vite-plugin-solid\";\nimport { defineConfig } from \"vite\";\nimport { nitro } from \"nitro/vite\";\n\nexport default defineConfig({\n  plugins: [solid({ ssr: true }), nitro()],\n  esbuild: { jsx: \"preserve\", jsxImportSource: \"solid-js\" },\n  environments: {\n    ssr: {\n      build: { rollupOptions: { input: \"./src/entry-server.tsx\" } },\n    },\n    client: {\n      build: { rollupOptions: { input: \"./src/entry-client.tsx\" } },\n    },\n  },\n});\n",[371,1797,1798,1810,1822,1834,1838,1848,1864,1876,1881,1886,1897,1902,1907,1916,1920,1924],{"__ignoreMap":5},[374,1799,1800,1802,1804,1806,1808],{"class":376,"line":377},[374,1801,580],{"class":579},[374,1803,583],{"class":380},[374,1805,586],{"class":579},[374,1807,589],{"class":394},[374,1809,592],{"class":380},[374,1811,1812,1814,1816,1818,1820],{"class":376,"line":384},[374,1813,580],{"class":579},[374,1815,599],{"class":380},[374,1817,586],{"class":579},[374,1819,604],{"class":394},[374,1821,592],{"class":380},[374,1823,1824,1826,1828,1830,1832],{"class":376,"line":401},[374,1825,580],{"class":579},[374,1827,613],{"class":380},[374,1829,586],{"class":579},[374,1831,618],{"class":394},[374,1833,592],{"class":380},[374,1835,1836],{"class":376,"line":410},[374,1837,626],{"emptyLinePlaceholder":625},[374,1839,1840,1842,1844,1846],{"class":376,"line":423},[374,1841,631],{"class":579},[374,1843,634],{"class":579},[374,1845,638],{"class":637},[374,1847,641],{"class":380},[374,1849,1850,1852,1854,1856,1858,1860,1862],{"class":376,"line":434},[374,1851,646],{"class":380},[374,1853,649],{"class":637},[374,1855,652],{"class":380},[374,1857,361],{"class":387},[374,1859,657],{"class":380},[374,1861,660],{"class":637},[374,1863,663],{"class":380},[374,1865,1866,1868,1870,1872,1874],{"class":376,"line":440},[374,1867,668],{"class":380},[374,1869,546],{"class":394},[374,1871,673],{"class":380},[374,1873,676],{"class":394},[374,1875,679],{"class":380},[374,1877,1878],{"class":376,"line":448},[374,1879,1880],{"class":380},"  environments: {\n",[374,1882,1883],{"class":376,"line":461},[374,1884,1885],{"class":380},"    ssr: {\n",[374,1887,1888,1891,1894],{"class":376,"line":474},[374,1889,1890],{"class":380},"      build: { rollupOptions: { input: ",[374,1892,1893],{"class":394},"\"./src/entry-server.tsx\"",[374,1895,1896],{"class":380}," } },\n",[374,1898,1899],{"class":376,"line":487},[374,1900,1901],{"class":380},"    },\n",[374,1903,1904],{"class":376,"line":498},[374,1905,1906],{"class":380},"    client: {\n",[374,1908,1909,1911,1914],{"class":376,"line":504},[374,1910,1890],{"class":380},[374,1912,1913],{"class":394},"\"./src/entry-client.tsx\"",[374,1915,1896],{"class":380},[374,1917,1918],{"class":376,"line":1154},[374,1919,1901],{"class":380},[374,1921,1922],{"class":376,"line":1159},[374,1923,437],{"class":380},[374,1925,1926],{"class":376,"line":1165},[374,1927,684],{"class":380},[1749,1929,1930,1931,1934,1935,1788,1937,1939],{},"Enable SSR mode in the Solid plugin with ",[371,1932,1933],{},"solid({ ssr: true })",". Configure esbuild to preserve JSX for Solid's compiler and use Solid's JSX runtime. SolidJS requires explicit ",[371,1936,1787],{},[371,1938,1791],{}," environment configuration in Vite.",[1757,1941,1943],{"id":1942},"_2-create-the-app-component","2. Create the App Component",[1749,1945,1946],{},"Create a shared SolidJS component using reactive signals:",[364,1948,1949],{"className":687,"code":688,"filename":689,"language":690,"meta":5,"style":5},[371,1950,1951,1963,1967,1977,2001,2005,2011,2019,2031,2071,2079,2083],{"__ignoreMap":5},[374,1952,1953,1955,1957,1959,1961],{"class":376,"line":377},[374,1954,580],{"class":579},[374,1956,699],{"class":380},[374,1958,586],{"class":579},[374,1960,704],{"class":394},[374,1962,592],{"class":380},[374,1964,1965],{"class":376,"line":384},[374,1966,626],{"emptyLinePlaceholder":625},[374,1968,1969,1971,1973,1975],{"class":376,"line":401},[374,1970,631],{"class":579},[374,1972,717],{"class":579},[374,1974,720],{"class":637},[374,1976,723],{"class":380},[374,1978,1979,1981,1983,1985,1987,1989,1991,1993,1995,1997,1999],{"class":376,"line":410},[374,1980,728],{"class":579},[374,1982,731],{"class":380},[374,1984,734],{"class":387},[374,1986,737],{"class":380},[374,1988,740],{"class":387},[374,1990,743],{"class":380},[374,1992,746],{"class":579},[374,1994,749],{"class":637},[374,1996,752],{"class":380},[374,1998,755],{"class":387},[374,2000,758],{"class":380},[374,2002,2003],{"class":376,"line":423},[374,2004,626],{"emptyLinePlaceholder":625},[374,2006,2007,2009],{"class":376,"line":434},[374,2008,767],{"class":579},[374,2010,770],{"class":380},[374,2012,2013,2015,2017],{"class":376,"line":440},[374,2014,775],{"class":380},[374,2016,779],{"class":778},[374,2018,782],{"class":380},[374,2020,2021,2023,2025,2027,2029],{"class":376,"line":448},[374,2022,787],{"class":380},[374,2024,790],{"class":778},[374,2026,793],{"class":380},[374,2028,790],{"class":778},[374,2030,782],{"class":380},[374,2032,2033,2035,2037,2039,2041,2043,2045,2047,2049,2051,2053,2055,2057,2059,2061,2063,2065,2067,2069],{"class":376,"line":461},[374,2034,787],{"class":380},[374,2036,804],{"class":778},[374,2038,807],{"class":637},[374,2040,746],{"class":579},[374,2042,812],{"class":380},[374,2044,815],{"class":579},[374,2046,818],{"class":637},[374,2048,821],{"class":380},[374,2050,734],{"class":824},[374,2052,827],{"class":380},[374,2054,815],{"class":579},[374,2056,832],{"class":380},[374,2058,835],{"class":579},[374,2060,838],{"class":387},[374,2062,841],{"class":380},[374,2064,734],{"class":637},[374,2066,846],{"class":380},[374,2068,804],{"class":778},[374,2070,782],{"class":380},[374,2072,2073,2075,2077],{"class":376,"line":474},[374,2074,855],{"class":380},[374,2076,779],{"class":778},[374,2078,782],{"class":380},[374,2080,2081],{"class":376,"line":487},[374,2082,864],{"class":380},[374,2084,2085],{"class":376,"line":498},[374,2086,507],{"class":380},[1749,2088,2089,2090,2093,2094,2097],{},"SolidJS uses signals (",[371,2091,2092],{},"createSignal",") for state management. Unlike React's ",[371,2095,2096],{},"useState",", signals are getter functions that you call to read the value.",[1757,2099,2101],{"id":2100},"_3-create-the-server-entry","3. Create the Server Entry",[1749,2103,2104,2105,2107,2108,2110],{},"The server entry renders your SolidJS app to HTML using ",[371,2106,1754],{}," and includes the ",[371,2109,1459],{}," for client-side hydration:",[364,2112,2113],{"className":687,"code":953,"filename":362,"language":690,"meta":5,"style":5},[371,2114,2115,2127,2139,2143,2155,2167,2171,2179,2205,2227,2253,2263,2275,2279,2283,2287,2291,2313,2327,2333,2347,2355,2375,2395,2419,2423,2443,2467,2471,2479,2487,2511,2519,2537,2545,2553,2557],{"__ignoreMap":5},[374,2116,2117,2119,2121,2123,2125],{"class":376,"line":377},[374,2118,580],{"class":579},[374,2120,962],{"class":380},[374,2122,586],{"class":579},[374,2124,886],{"class":394},[374,2126,592],{"class":380},[374,2128,2129,2131,2133,2135,2137],{"class":376,"line":384},[374,2130,580],{"class":579},[374,2132,904],{"class":380},[374,2134,586],{"class":579},[374,2136,909],{"class":394},[374,2138,592],{"class":380},[374,2140,2141],{"class":376,"line":401},[374,2142,626],{"emptyLinePlaceholder":625},[374,2144,2145,2147,2149,2151,2153],{"class":376,"line":410},[374,2146,580],{"class":579},[374,2148,991],{"class":380},[374,2150,586],{"class":579},[374,2152,996],{"class":394},[374,2154,592],{"class":380},[374,2156,2157,2159,2161,2163,2165],{"class":376,"line":423},[374,2158,580],{"class":579},[374,2160,1005],{"class":380},[374,2162,586],{"class":579},[374,2164,1010],{"class":394},[374,2166,592],{"class":380},[374,2168,2169],{"class":376,"line":434},[374,2170,626],{"emptyLinePlaceholder":625},[374,2172,2173,2175,2177],{"class":376,"line":440},[374,2174,631],{"class":579},[374,2176,634],{"class":579},[374,2178,1025],{"class":380},[374,2180,2181,2183,2185,2187,2189,2191,2193,2195,2197,2199,2201,2203],{"class":376,"line":448},[374,2182,1030],{"class":579},[374,2184,1033],{"class":637},[374,2186,752],{"class":380},[374,2188,1038],{"class":824},[374,2190,1041],{"class":579},[374,2192,1044],{"class":637},[374,2194,945],{"class":380},[374,2196,1041],{"class":579},[374,2198,1051],{"class":637},[374,2200,1054],{"class":380},[374,2202,1057],{"class":637},[374,2204,1060],{"class":380},[374,2206,2207,2209,2211,2213,2215,2217,2219,2221,2223,2225],{"class":376,"line":461},[374,2208,1065],{"class":579},[374,2210,1068],{"class":387},[374,2212,1071],{"class":579},[374,2214,1074],{"class":579},[374,2216,1077],{"class":637},[374,2218,923],{"class":380},[374,2220,815],{"class":579},[374,2222,928],{"class":380},[374,2224,931],{"class":387},[374,2226,1088],{"class":380},[374,2228,2229,2231,2233,2235,2237,2239,2241,2243,2245,2247,2249,2251],{"class":376,"line":474},[374,2230,1065],{"class":579},[374,2232,1095],{"class":387},[374,2234,1071],{"class":579},[374,2236,1074],{"class":579},[374,2238,1077],{"class":637},[374,2240,923],{"class":380},[374,2242,815],{"class":579},[374,2244,928],{"class":380},[374,2246,1110],{"class":387},[374,2248,1068],{"class":637},[374,2250,746],{"class":579},[374,2252,1117],{"class":380},[374,2254,2255,2257,2259,2261],{"class":376,"line":487},[374,2256,1122],{"class":579},[374,2258,1125],{"class":579},[374,2260,1128],{"class":637},[374,2262,1131],{"class":380},[374,2264,2265,2267,2269,2271,2273],{"class":376,"line":498},[374,2266,1136],{"class":380},[374,2268,1139],{"class":394},[374,2270,391],{"class":380},[374,2272,1144],{"class":394},[374,2274,679],{"class":380},[374,2276,2277],{"class":376,"line":504},[374,2278,1151],{"class":380},[374,2280,2281],{"class":376,"line":1154},[374,2282,437],{"class":380},[374,2284,2285],{"class":376,"line":1159},[374,2286,1162],{"class":380},[374,2288,2289],{"class":376,"line":1165},[374,2290,626],{"emptyLinePlaceholder":625},[374,2292,2293,2295,2297,2299,2301,2303,2305,2307,2309,2311],{"class":376,"line":1170},[374,2294,1173],{"class":579},[374,2296,1176],{"class":637},[374,2298,752],{"class":380},[374,2300,1181],{"class":824},[374,2302,1041],{"class":579},[374,2304,1186],{"class":380},[374,2306,1189],{"class":824},[374,2308,1192],{"class":579},[374,2310,1195],{"class":387},[374,2312,1198],{"class":380},[374,2314,2315,2317,2319,2321,2323,2325],{"class":376,"line":1201},[374,2316,728],{"class":579},[374,2318,1206],{"class":387},[374,2320,1071],{"class":579},[374,2322,1211],{"class":380},[374,2324,1214],{"class":637},[374,2326,1217],{"class":380},[374,2328,2329,2331],{"class":376,"line":1220},[374,2330,767],{"class":579},[374,2332,770],{"class":380},[374,2334,2335,2337,2339,2341,2343,2345],{"class":376,"line":1227},[374,2336,775],{"class":380},[374,2338,1232],{"class":778},[374,2340,1235],{"class":637},[374,2342,746],{"class":579},[374,2344,1240],{"class":394},[374,2346,782],{"class":380},[374,2348,2349,2351,2353],{"class":376,"line":1245},[374,2350,787],{"class":380},[374,2352,1250],{"class":778},[374,2354,782],{"class":380},[374,2356,2357,2359,2361,2363,2365,2367,2369,2371,2373],{"class":376,"line":1255},[374,2358,1258],{"class":380},[374,2360,1261],{"class":778},[374,2362,1264],{"class":637},[374,2364,746],{"class":579},[374,2366,1269],{"class":394},[374,2368,1272],{"class":637},[374,2370,746],{"class":579},[374,2372,1277],{"class":394},[374,2374,1280],{"class":380},[374,2376,2377,2379,2381,2383,2385,2387,2389,2391,2393],{"class":376,"line":1283},[374,2378,1286],{"class":380},[374,2380,1289],{"class":637},[374,2382,821],{"class":380},[374,2384,1294],{"class":824},[374,2386,1041],{"class":579},[374,2388,1299],{"class":387},[374,2390,827],{"class":380},[374,2392,815],{"class":579},[374,2394,770],{"class":380},[374,2396,2397,2399,2401,2403,2405,2407,2409,2411,2413,2415,2417],{"class":376,"line":1308},[374,2398,1311],{"class":380},[374,2400,1314],{"class":778},[374,2402,1317],{"class":637},[374,2404,746],{"class":579},[374,2406,1322],{"class":380},[374,2408,1325],{"class":637},[374,2410,746],{"class":579},[374,2412,1330],{"class":394},[374,2414,1333],{"class":380},[374,2416,1336],{"class":579},[374,2418,1339],{"class":380},[374,2420,2421],{"class":376,"line":1342},[374,2422,1345],{"class":380},[374,2424,2425,2427,2429,2431,2433,2435,2437,2439,2441],{"class":376,"line":1348},[374,2426,1351],{"class":380},[374,2428,1289],{"class":637},[374,2430,821],{"class":380},[374,2432,1294],{"class":824},[374,2434,1041],{"class":579},[374,2436,1299],{"class":387},[374,2438,827],{"class":380},[374,2440,815],{"class":579},[374,2442,770],{"class":380},[374,2444,2445,2447,2449,2451,2453,2455,2457,2459,2461,2463,2465],{"class":376,"line":1370},[374,2446,1311],{"class":380},[374,2448,1314],{"class":778},[374,2450,1317],{"class":637},[374,2452,746],{"class":579},[374,2454,1322],{"class":380},[374,2456,1383],{"class":637},[374,2458,746],{"class":579},[374,2460,1388],{"class":394},[374,2462,1333],{"class":380},[374,2464,1336],{"class":579},[374,2466,1339],{"class":380},[374,2468,2469],{"class":376,"line":1397},[374,2470,1345],{"class":380},[374,2472,2473,2475,2477],{"class":376,"line":1402},[374,2474,1405],{"class":380},[374,2476,1250],{"class":778},[374,2478,782],{"class":380},[374,2480,2481,2483,2485],{"class":376,"line":1412},[374,2482,787],{"class":380},[374,2484,1417],{"class":778},[374,2486,782],{"class":380},[374,2488,2489,2491,2493,2495,2497,2499,2501,2503,2505,2507,2509],{"class":376,"line":1422},[374,2490,1258],{"class":380},[374,2492,779],{"class":778},[374,2494,1429],{"class":637},[374,2496,746],{"class":579},[374,2498,1434],{"class":394},[374,2500,1437],{"class":637},[374,2502,746],{"class":579},[374,2504,1442],{"class":380},[374,2506,1445],{"class":579},[374,2508,1448],{"class":394},[374,2510,1451],{"class":380},[374,2512,2513,2515,2517],{"class":376,"line":1454},[374,2514,1258],{"class":380},[374,2516,1459],{"class":387},[374,2518,1280],{"class":380},[374,2520,2521,2523,2525,2527,2529,2531,2533,2535],{"class":376,"line":1464},[374,2522,1258],{"class":380},[374,2524,1469],{"class":778},[374,2526,1472],{"class":637},[374,2528,746],{"class":579},[374,2530,395],{"class":394},[374,2532,1479],{"class":637},[374,2534,746],{"class":579},[374,2536,1484],{"class":380},[374,2538,2539,2541,2543],{"class":376,"line":1487},[374,2540,1405],{"class":380},[374,2542,1417],{"class":778},[374,2544,782],{"class":380},[374,2546,2547,2549,2551],{"class":376,"line":1496},[374,2548,855],{"class":380},[374,2550,1232],{"class":778},[374,2552,782],{"class":380},[374,2554,2555],{"class":376,"line":1505},[374,2556,864],{"class":380},[374,2558,2559],{"class":376,"line":1510},[374,2560,507],{"class":380},[1749,2562,2563,2564,2567,2568,2570,2571,1788,2574,2577],{},"SolidJS requires rendering the app separately from the shell (two-phase rendering). The app HTML is injected via ",[371,2565,2566],{},"innerHTML"," to preserve hydration markers. Include the ",[371,2569,1459],{}," component to inject the script Solid needs to rehydrate on the client. Import assets using the ",[371,2572,2573],{},"?assets=client",[371,2575,2576],{},"?assets=ssr"," query parameters to collect CSS and JS from each entry point.",[1757,2579,2581],{"id":2580},"_4-create-the-client-entry","4. Create the Client Entry",[1749,2583,2584],{},"The client entry hydrates the server-rendered HTML, restoring Solid's reactivity:",[364,2586,2587],{"className":687,"code":871,"filename":872,"language":690,"meta":5,"style":5},[371,2588,2589,2601,2609,2621,2625],{"__ignoreMap":5},[374,2590,2591,2593,2595,2597,2599],{"class":376,"line":377},[374,2592,580],{"class":579},[374,2594,881],{"class":380},[374,2596,586],{"class":579},[374,2598,886],{"class":394},[374,2600,592],{"class":380},[374,2602,2603,2605,2607],{"class":376,"line":384},[374,2604,580],{"class":579},[374,2606,895],{"class":394},[374,2608,592],{"class":380},[374,2610,2611,2613,2615,2617,2619],{"class":376,"line":401},[374,2612,580],{"class":579},[374,2614,904],{"class":380},[374,2616,586],{"class":579},[374,2618,909],{"class":394},[374,2620,592],{"class":380},[374,2622,2623],{"class":376,"line":410},[374,2624,626],{"emptyLinePlaceholder":625},[374,2626,2627,2629,2631,2633,2635,2637,2639,2641,2643,2645,2647,2649],{"class":376,"line":423},[374,2628,920],{"class":637},[374,2630,923],{"class":380},[374,2632,815],{"class":579},[374,2634,928],{"class":380},[374,2636,931],{"class":387},[374,2638,934],{"class":380},[374,2640,937],{"class":637},[374,2642,752],{"class":380},[374,2644,942],{"class":394},[374,2646,945],{"class":380},[374,2648,948],{"class":579},[374,2650,758],{"class":380},[1749,2652,2653,2654,2656,2657,2660,2661,2664],{},"The ",[371,2655,920],{}," function attaches Solid's reactive system to the existing server-rendered DOM inside ",[371,2658,2659],{},"#app",". The component is wrapped in a function ",[371,2662,2663],{},"() => \u003CApp />"," as required by Solid's API.",[1757,2666,2668],{"id":2667},"learn-more","Learn More",[2670,2671,2672,2682,2686],"ul",{},[2673,2674,2675],"li",{},[2676,2677,2681],"a",{"href":2678,"rel":2679},"https://docs.solidjs.com/",[2680],"nofollow","SolidJS Documentation",[2673,2683,2684],{},[2676,2685,18],{"href":19},[2673,2687,2688],{},[2676,2689,58],{"href":59},[2691,2692,2693],"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":2695},[2696,2697,2698,2699,2700,2701],{"id":1759,"depth":384,"text":1760},{"id":1780,"depth":384,"text":1781},{"id":1942,"depth":384,"text":1943},{"id":2100,"depth":384,"text":2101},{"id":2580,"depth":384,"text":2581},{"id":2667,"depth":384,"text":2668},"md","i-logos-solidjs-icon",{"automd":625},{},{"title":330,"description":331},"examples/vite-ssr-solid/README","3MqGscLPgy_sIFW08YGKpOUE5PX0Ug-GiWoj7RXsZpY",[2710,2713],{"title":326,"path":2711,"stem":2712,"description":327,"children":-1},"/examples/vite-ssr-react","examples/vite-ssr-react/README",{"title":334,"path":2714,"stem":2715,"description":335,"children":-1},"/examples/vite-ssr-tsr-react","examples/vite-ssr-tsr-react/README",1773050455756]