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