{"raw":"It has been seven months since `4.0.0-next.0` was released.\nThis new version brings both **feature updates** and **major internal performance improvements**.\nHere’s a summary of everything that has changed.\n\n## Performance\n\nIn line with zely's philosophy, performance has been **dramatically improved**.\n\nCompared to previous versions, the latest update significantly reduces latency and nearly triples throughput (requests/sec and bytes/sec).\nThis level of performance leap is not just a minor improvement—it redefines how lightweight servers can operate at scale.\n\n👉 [View Full Benchmark History](https://github.com/zely-js/benchmark-history)\n\n<Box title=\"Performance\">\n\n| Pkg                                                                                             | Latency     | Requests/Sec | Bytes/Sec |\n| ----------------------------------------------------------------------------------------------- | ----------- | ------------ | --------- |\n| [**4.0.0\\:serpack-on (latest)**](https://www.npmjs.com/package/zely/v/4.0.0-next.22:serpack-on) | **0.02 ms** | 19.5K        | 2.49 MB   |\n| [**4.0.0\\:serpack-off (latest)**](https://www.npmjs.com/package/zely/v/4.0.0-next.22)           | **0.01 ms** | 19.5K        | 2.49 MB   |\n| [**3.0.0**](https://www.npmjs.com/package/zely/v/3.0.0)                                         | 1.06 ms     | 6.5K         | 848.84 KB |\n| [**2.0.0-next.24**](https://www.npmjs.com/package/zely/v/2.0.0-next.24)                         | 0.1 ms      | 12.7K        | 1.63 MB   |\n| [**1.0.0**](https://www.npmjs.com/package/zely/v/1.0.0)                                         | 0.02 ms     | 18.7K        | 2.39 MB   |\n\n---\n\n</Box>\n\n> Even when [serpack](#new-compiler) is enabled, there is **no noticeable performance loss**, proving that the new compiler is lightweight enough for production environments.\n\n## New Compiler\n\nzely now supports a new compiler to allow for more flexibility in future updates.\nAlthough `esbuild` remains the default loader, zely introduces [serpack](/serpack), a custom loader built on top of `swc`.\n\n```bash\nzely dev --serpack\n```\n\nWhile serpack is slightly less performant than `esbuild` (but still fast!), it is **tightly optimized for zely**'s internal systems and unlocks powerful features not available with esbuild.\n\n<Box type=\"warning\">\n  Although serpack is mostly stable, undiscovered issues may still occur.\n</Box>\n\n## Server Build\n\nYou can now **compile and deploy** your zely-powered server as JavaScript.\n\nThe old version of build feature (provided by [@zely/builder](https://zely2.netlify.app/docs/zely-builder#usage)) became incompatible after 3.0 due to internal changes, but the feature is now back in 4.0—completely rebuilt.\n\nWhile the original builder only copied and transpiled the server, the new build system routes all requests directly through the zely server runtime.\n\nFor details, refer to the [build documentation](/apis/build).\n\n## \\$store\n\n[`$store`](/docs/server-data) is a server-side cache utility.\n\nIt runs the given callback function **only once**, caches the result, and reuses it for 3 minutes.\n\n```ts\nimport { GET } from '@zely-js/core';\nimport { setTimeout } from 'timers/promises';\n\nasync function greeting() {\n  await setTimeout(1000);\n  return 'Hello, Doe!';\n}\n\nexport default [\n  GET(async (ctx) => {\n    const { data } = await $store(greeting);\n    ctx.send(data);\n  }),\n];\n```\n\n`$store` is already globally declared, so you **don’t need to import it manually**.\n\n<Box type=\"warning\">\n  Since $store internally depends on features provided by [serpack](/serpack), please\n  activate it using the `--serpack` flag when running your server.\n</Box>\n\n## Frontend Support (Experimental)\n\n> Note: This is an experimental feature for upcoming frontend support.\n\nThe new HTML loader compiles the HTML file instead of directly serving it, improving responsiveness and enabling future extensibility.\n[Learn more](/docs/frontend)\n\nEnable the loader with `experimental.useHTML` in `zely.config.ts`:\n\n```ts [title=\"zely.config.ts\"]\nimport { defineConfig } from 'zely';\n\nexport default defineConfig({\n  experimental: {\n    useHTML: true,\n  },\n});\n```\n\n<Box>\n  Example: [simple\n  counter](https://github.com/zely-js/zely/blob/main/playground/typescript/pages/%5Bparams%5D/index.html)\n</Box>\n\n## CLI Request Tool\n\nNo need to write temporary scripts to test your server during development.\n\n```ansi\n$ zely request\n\n▸ baseURL: \u001b[1m\u001b[32mhttp://localhost:3001\u001b[39m\u001b[22m\n\n\u001b[90m[12:31:35 AM]\u001b[39m \u001b[1m\u001b[34minfo\u001b[39m\u001b[22m \u001b[1mchecking server... (requesting /)\u001b[22m\n\n\u001b[1m\u001b[34mGET\u001b[39m\u001b[22m> /\n\u001b[32m200\u001b[39m {\"msg\":\"Hello\",\"name\":\"\"}\n\u001b[1m\u001b[34mGET\u001b[39m\u001b[22m>\n```\n\nYou can also use JavaScript to configure method, headers, and body inline:\n\n```ansi\n\u001b[1m\u001b[34mGET\u001b[39m\u001b[22m> config1 = { method: \"POST\", headers: { }, body: { name: \"Cat\" } }\n\u001b[1m\u001b[34mGET\u001b[39m\u001b[22m> set(config1)\n\u001b[1m\u001b[34mPOST\u001b[39m\u001b[22m\u001b[90m(config1)\u001b[39m> /greeting\n\u001b[32m200\u001b[39m Hello, Cat!\n```\n\n<Box type=\"tip\">\n  Declare variables without using `const` or `let`—just type them directly in the prompt.\n</Box>\n\n## Debugging\n\nCheck the [debugging documentation](/docs/debugging) for more details.\n\n## Conclusion\n\nThis release makes zely faster, more modular, and ready for future features like frontend rendering and build-time optimizations.\nWith the introduction of serpack, a new compiler architecture, and the return of server builds, zely is growing beyond just a micro-framework—it’s evolving into a complete platform for building fast, modern web applications.\n\nGive it a try and let us know what you think.\n","target":{"title":"Introducing 4.0!","date":"25-06-22","description":"A new major release with improved features, performance, and developer experience.","category":"Release"},"compiled":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n  const _components = {\n    a: \"a\",\n    blockquote: \"blockquote\",\n    code: \"code\",\n    figcaption: \"figcaption\",\n    figure: \"figure\",\n    h2: \"h2\",\n    hr: \"hr\",\n    p: \"p\",\n    pre: \"pre\",\n    span: \"span\",\n    strong: \"strong\",\n    table: \"table\",\n    tbody: \"tbody\",\n    td: \"td\",\n    th: \"th\",\n    thead: \"thead\",\n    tr: \"tr\",\n    ...props.components\n  }, {Box} = _components;\n  if (!Box) _missingMdxReference(\"Box\", true);\n  return _jsxs(_Fragment, {\n    children: [_jsxs(_components.p, {\n      children: [\"It has been seven months since \", _jsx(_components.code, {\n        children: \"4.0.0-next.0\"\n      }), \" was released.\\nThis new version brings both \", _jsx(_components.strong, {\n        children: \"feature updates\"\n      }), \" and \", _jsx(_components.strong, {\n        children: \"major internal performance improvements\"\n      }), \".\\nHere’s a summary of everything that has changed.\"]\n    }), \"\\n\", _jsx(_components.h2, {\n      children: \"Performance\"\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"In line with zely's philosophy, performance has been \", _jsx(_components.strong, {\n        children: \"dramatically improved\"\n      }), \".\"]\n    }), \"\\n\", _jsx(_components.p, {\n      children: \"Compared to previous versions, the latest update significantly reduces latency and nearly triples throughput (requests/sec and bytes/sec).\\nThis level of performance leap is not just a minor improvement—it redefines how lightweight servers can operate at scale.\"\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"👉 \", _jsx(_components.a, {\n        href: \"https://github.com/zely-js/benchmark-history\",\n        children: \"View Full Benchmark History\"\n      })]\n    }), \"\\n\", _jsxs(Box, {\n      title: \"Performance\",\n      children: [_jsxs(_components.table, {\n        children: [_jsx(_components.thead, {\n          children: _jsxs(_components.tr, {\n            children: [_jsx(_components.th, {\n              children: \"Pkg\"\n            }), _jsx(_components.th, {\n              children: \"Latency\"\n            }), _jsx(_components.th, {\n              children: \"Requests/Sec\"\n            }), _jsx(_components.th, {\n              children: \"Bytes/Sec\"\n            })]\n          })\n        }), _jsxs(_components.tbody, {\n          children: [_jsxs(_components.tr, {\n            children: [_jsx(_components.td, {\n              children: _jsx(_components.a, {\n                href: \"https://www.npmjs.com/package/zely/v/4.0.0-next.22:serpack-on\",\n                children: _jsx(_components.strong, {\n                  children: \"4.0.0:serpack-on (latest)\"\n                })\n              })\n            }), _jsx(_components.td, {\n              children: _jsx(_components.strong, {\n                children: \"0.02 ms\"\n              })\n            }), _jsx(_components.td, {\n              children: \"19.5K\"\n            }), _jsx(_components.td, {\n              children: \"2.49 MB\"\n            })]\n          }), _jsxs(_components.tr, {\n            children: [_jsx(_components.td, {\n              children: _jsx(_components.a, {\n                href: \"https://www.npmjs.com/package/zely/v/4.0.0-next.22\",\n                children: _jsx(_components.strong, {\n                  children: \"4.0.0:serpack-off (latest)\"\n                })\n              })\n            }), _jsx(_components.td, {\n              children: _jsx(_components.strong, {\n                children: \"0.01 ms\"\n              })\n            }), _jsx(_components.td, {\n              children: \"19.5K\"\n            }), _jsx(_components.td, {\n              children: \"2.49 MB\"\n            })]\n          }), _jsxs(_components.tr, {\n            children: [_jsx(_components.td, {\n              children: _jsx(_components.a, {\n                href: \"https://www.npmjs.com/package/zely/v/3.0.0\",\n                children: _jsx(_components.strong, {\n                  children: \"3.0.0\"\n                })\n              })\n            }), _jsx(_components.td, {\n              children: \"1.06 ms\"\n            }), _jsx(_components.td, {\n              children: \"6.5K\"\n            }), _jsx(_components.td, {\n              children: \"848.84 KB\"\n            })]\n          }), _jsxs(_components.tr, {\n            children: [_jsx(_components.td, {\n              children: _jsx(_components.a, {\n                href: \"https://www.npmjs.com/package/zely/v/2.0.0-next.24\",\n                children: _jsx(_components.strong, {\n                  children: \"2.0.0-next.24\"\n                })\n              })\n            }), _jsx(_components.td, {\n              children: \"0.1 ms\"\n            }), _jsx(_components.td, {\n              children: \"12.7K\"\n            }), _jsx(_components.td, {\n              children: \"1.63 MB\"\n            })]\n          }), _jsxs(_components.tr, {\n            children: [_jsx(_components.td, {\n              children: _jsx(_components.a, {\n                href: \"https://www.npmjs.com/package/zely/v/1.0.0\",\n                children: _jsx(_components.strong, {\n                  children: \"1.0.0\"\n                })\n              })\n            }), _jsx(_components.td, {\n              children: \"0.02 ms\"\n            }), _jsx(_components.td, {\n              children: \"18.7K\"\n            }), _jsx(_components.td, {\n              children: \"2.39 MB\"\n            })]\n          })]\n        })]\n      }), _jsx(_components.hr, {})]\n    }), \"\\n\", _jsxs(_components.blockquote, {\n      children: [\"\\n\", _jsxs(_components.p, {\n        children: [\"Even when \", _jsx(_components.a, {\n          href: \"#new-compiler\",\n          children: \"serpack\"\n        }), \" is enabled, there is \", _jsx(_components.strong, {\n          children: \"no noticeable performance loss\"\n        }), \", proving that the new compiler is lightweight enough for production environments.\"]\n      }), \"\\n\"]\n    }), \"\\n\", _jsx(_components.h2, {\n      children: \"New Compiler\"\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"zely now supports a new compiler to allow for more flexibility in future updates.\\nAlthough \", _jsx(_components.code, {\n        children: \"esbuild\"\n      }), \" remains the default loader, zely introduces \", _jsx(_components.a, {\n        href: \"/serpack\",\n        children: \"serpack\"\n      }), \", a custom loader built on top of \", _jsx(_components.code, {\n        children: \"swc\"\n      }), \".\"]\n    }), \"\\n\", _jsx(_components.figure, {\n      \"data-rehype-pretty-code-figure\": \"\",\n      children: _jsx(_components.pre, {\n        tabIndex: \"0\",\n        \"data-language\": \"bash\",\n        \"data-theme\": \"material-theme-palenight github-light\",\n        children: _jsx(_components.code, {\n          \"data-language\": \"bash\",\n          \"data-theme\": \"material-theme-palenight github-light\",\n          style: {\n            display: \"grid\"\n          },\n          children: _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#FFCB6B\",\n                \"--shiki-light\": \"#6F42C1\"\n              },\n              children: \"zely\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#C3E88D\",\n                \"--shiki-light\": \"#032F62\"\n              },\n              children: \" dev\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#C3E88D\",\n                \"--shiki-light\": \"#005CC5\"\n              },\n              children: \" --serpack\"\n            })]\n          })\n        })\n      })\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"While serpack is slightly less performant than \", _jsx(_components.code, {\n        children: \"esbuild\"\n      }), \" (but still fast!), it is \", _jsx(_components.strong, {\n        children: \"tightly optimized for zely\"\n      }), \"'s internal systems and unlocks powerful features not available with esbuild.\"]\n    }), \"\\n\", _jsx(Box, {\n      type: \"warning\",\n      children: _jsx(_components.p, {\n        children: \"Although serpack is mostly stable, undiscovered issues may still occur.\"\n      })\n    }), \"\\n\", _jsx(_components.h2, {\n      children: \"Server Build\"\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"You can now \", _jsx(_components.strong, {\n        children: \"compile and deploy\"\n      }), \" your zely-powered server as JavaScript.\"]\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"The old version of build feature (provided by \", _jsx(_components.a, {\n        href: \"https://zely2.netlify.app/docs/zely-builder#usage\",\n        children: \"@zely/builder\"\n      }), \") became incompatible after 3.0 due to internal changes, but the feature is now back in 4.0—completely rebuilt.\"]\n    }), \"\\n\", _jsx(_components.p, {\n      children: \"While the original builder only copied and transpiled the server, the new build system routes all requests directly through the zely server runtime.\"\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"For details, refer to the \", _jsx(_components.a, {\n        href: \"/apis/build\",\n        children: \"build documentation\"\n      }), \".\"]\n    }), \"\\n\", _jsx(_components.h2, {\n      children: \"$store\"\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [_jsx(_components.a, {\n        href: \"/docs/server-data\",\n        children: _jsx(_components.code, {\n          children: \"$store\"\n        })\n      }), \" is a server-side cache utility.\"]\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"It runs the given callback function \", _jsx(_components.strong, {\n        children: \"only once\"\n      }), \", caches the result, and reuses it for 3 minutes.\"]\n    }), \"\\n\", _jsx(_components.figure, {\n      \"data-rehype-pretty-code-figure\": \"\",\n      children: _jsx(_components.pre, {\n        tabIndex: \"0\",\n        \"data-language\": \"ts\",\n        \"data-theme\": \"material-theme-palenight github-light\",\n        children: _jsxs(_components.code, {\n          \"data-language\": \"ts\",\n          \"data-theme\": \"material-theme-palenight github-light\",\n          style: {\n            display: \"grid\"\n          },\n          children: [_jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-dark-font-style\": \"italic\",\n                \"--shiki-light\": \"#D73A49\",\n                \"--shiki-light-font-style\": \"inherit\"\n              },\n              children: \"import\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \" {\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#BABED8\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \" GET\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \" }\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-dark-font-style\": \"italic\",\n                \"--shiki-light\": \"#D73A49\",\n                \"--shiki-light-font-style\": \"inherit\"\n              },\n              children: \" from\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#032F62\"\n              },\n              children: \" '\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#C3E88D\",\n                \"--shiki-light\": \"#032F62\"\n              },\n              children: \"@zely-js/core\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#032F62\"\n              },\n              children: \"'\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \";\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-dark-font-style\": \"italic\",\n                \"--shiki-light\": \"#D73A49\",\n                \"--shiki-light-font-style\": \"inherit\"\n              },\n              children: \"import\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \" {\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#BABED8\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \" setTimeout\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \" }\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-dark-font-style\": \"italic\",\n                \"--shiki-light\": \"#D73A49\",\n                \"--shiki-light-font-style\": \"inherit\"\n              },\n              children: \" from\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#032F62\"\n              },\n              children: \" '\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#C3E88D\",\n                \"--shiki-light\": \"#032F62\"\n              },\n              children: \"timers/promises\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#032F62\"\n              },\n              children: \"'\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \";\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            \"data-line\": \"\",\n            children: \" \"\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#C792EA\",\n                \"--shiki-light\": \"#D73A49\"\n              },\n              children: \"async\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#C792EA\",\n                \"--shiki-light\": \"#D73A49\"\n              },\n              children: \" function\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#82AAFF\",\n                \"--shiki-light\": \"#6F42C1\"\n              },\n              children: \" greeting\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"()\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-dark-font-style\": \"italic\",\n                \"--shiki-light\": \"#D73A49\",\n                \"--shiki-light-font-style\": \"inherit\"\n              },\n              children: \"  await\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#82AAFF\",\n                \"--shiki-light\": \"#6F42C1\"\n              },\n              children: \" setTimeout\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#F07178\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"(\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#F78C6C\",\n                \"--shiki-light\": \"#005CC5\"\n              },\n              children: \"1000\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#F07178\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \")\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \";\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-dark-font-style\": \"italic\",\n                \"--shiki-light\": \"#D73A49\",\n                \"--shiki-light-font-style\": \"inherit\"\n              },\n              children: \"  return\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#032F62\"\n              },\n              children: \" '\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#C3E88D\",\n                \"--shiki-light\": \"#032F62\"\n              },\n              children: \"Hello, Doe!\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#032F62\"\n              },\n              children: \"'\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \";\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            \"data-line\": \"\",\n            children: _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"}\"\n            })\n          }), \"\\n\", _jsx(_components.span, {\n            \"data-line\": \"\",\n            children: \" \"\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-dark-font-style\": \"italic\",\n                \"--shiki-light\": \"#D73A49\",\n                \"--shiki-light-font-style\": \"inherit\"\n              },\n              children: \"export\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-dark-font-style\": \"italic\",\n                \"--shiki-light\": \"#D73A49\",\n                \"--shiki-light-font-style\": \"inherit\"\n              },\n              children: \" default\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#BABED8\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \" [\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#82AAFF\",\n                \"--shiki-light\": \"#6F42C1\"\n              },\n              children: \"  GET\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#BABED8\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"(\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#C792EA\",\n                \"--shiki-light\": \"#D73A49\"\n              },\n              children: \"async\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \" (\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#BABED8\",\n                \"--shiki-dark-font-style\": \"italic\",\n                \"--shiki-light\": \"#E36209\",\n                \"--shiki-light-font-style\": \"inherit\"\n              },\n              children: \"ctx\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \")\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#C792EA\",\n                \"--shiki-light\": \"#D73A49\"\n              },\n              children: \" =>\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#C792EA\",\n                \"--shiki-light\": \"#D73A49\"\n              },\n              children: \"    const\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \" {\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#BABED8\",\n                \"--shiki-light\": \"#005CC5\"\n              },\n              children: \" data\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \" }\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#D73A49\"\n              },\n              children: \" =\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-dark-font-style\": \"italic\",\n                \"--shiki-light\": \"#D73A49\",\n                \"--shiki-light-font-style\": \"inherit\"\n              },\n              children: \" await\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#82AAFF\",\n                \"--shiki-light\": \"#6F42C1\"\n              },\n              children: \" $store\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#F07178\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"(\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#BABED8\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"greeting\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#F07178\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \")\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \";\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#BABED8\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"    ctx\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \".\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#82AAFF\",\n                \"--shiki-light\": \"#6F42C1\"\n              },\n              children: \"send\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#F07178\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"(\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#BABED8\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"data\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#F07178\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \")\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \";\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"  }\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#BABED8\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \")\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#BABED8\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"]\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \";\"\n            })]\n          })]\n        })\n      })\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [_jsx(_components.code, {\n        children: \"$store\"\n      }), \" is already globally declared, so you \", _jsx(_components.strong, {\n        children: \"don’t need to import it manually\"\n      }), \".\"]\n    }), \"\\n\", _jsx(Box, {\n      type: \"warning\",\n      children: _jsxs(_components.p, {\n        children: [\"Since $store internally depends on features provided by \", _jsx(_components.a, {\n          href: \"/serpack\",\n          children: \"serpack\"\n        }), \", please\\nactivate it using the \", _jsx(_components.code, {\n          children: \"--serpack\"\n        }), \" flag when running your server.\"]\n      })\n    }), \"\\n\", _jsx(_components.h2, {\n      children: \"Frontend Support (Experimental)\"\n    }), \"\\n\", _jsxs(_components.blockquote, {\n      children: [\"\\n\", _jsx(_components.p, {\n        children: \"Note: This is an experimental feature for upcoming frontend support.\"\n      }), \"\\n\"]\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"The new HTML loader compiles the HTML file instead of directly serving it, improving responsiveness and enabling future extensibility.\\n\", _jsx(_components.a, {\n        href: \"/docs/frontend\",\n        children: \"Learn more\"\n      })]\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"Enable the loader with \", _jsx(_components.code, {\n        children: \"experimental.useHTML\"\n      }), \" in \", _jsx(_components.code, {\n        children: \"zely.config.ts\"\n      }), \":\"]\n    }), \"\\n\", _jsxs(_components.figure, {\n      \"data-rehype-pretty-code-figure\": \"\",\n      children: [_jsx(_components.figcaption, {\n        \"data-rehype-pretty-code-title\": \"\",\n        \"data-language\": \"ts\",\n        \"data-theme\": \"material-theme-palenight github-light\",\n        children: \"zely.config.ts\"\n      }), _jsx(_components.pre, {\n        tabIndex: \"0\",\n        \"data-language\": \"ts\",\n        \"data-theme\": \"material-theme-palenight github-light\",\n        children: _jsxs(_components.code, {\n          \"data-language\": \"ts\",\n          \"data-theme\": \"material-theme-palenight github-light\",\n          style: {\n            display: \"grid\"\n          },\n          children: [_jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-dark-font-style\": \"italic\",\n                \"--shiki-light\": \"#D73A49\",\n                \"--shiki-light-font-style\": \"inherit\"\n              },\n              children: \"import\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \" {\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#BABED8\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \" defineConfig\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \" }\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-dark-font-style\": \"italic\",\n                \"--shiki-light\": \"#D73A49\",\n                \"--shiki-light-font-style\": \"inherit\"\n              },\n              children: \" from\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#032F62\"\n              },\n              children: \" '\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#C3E88D\",\n                \"--shiki-light\": \"#032F62\"\n              },\n              children: \"zely\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#032F62\"\n              },\n              children: \"'\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \";\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            \"data-line\": \"\",\n            children: \" \"\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-dark-font-style\": \"italic\",\n                \"--shiki-light\": \"#D73A49\",\n                \"--shiki-light-font-style\": \"inherit\"\n              },\n              children: \"export\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-dark-font-style\": \"italic\",\n                \"--shiki-light\": \"#D73A49\",\n                \"--shiki-light-font-style\": \"inherit\"\n              },\n              children: \" default\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#82AAFF\",\n                \"--shiki-light\": \"#6F42C1\"\n              },\n              children: \" defineConfig\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#BABED8\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"(\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"{\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#F07178\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"  experimental\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#F07178\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"    useHTML\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#FF9CAC\",\n                \"--shiki-light\": \"#005CC5\"\n              },\n              children: \" true\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            \"data-line\": \"\",\n            children: _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"  },\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \"}\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#BABED8\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \")\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#89DDFF\",\n                \"--shiki-light\": \"#24292E\"\n              },\n              children: \";\"\n            })]\n          })]\n        })\n      })]\n    }), \"\\n\", _jsx(Box, {\n      children: _jsxs(_components.p, {\n        children: [\"Example: \", _jsx(_components.a, {\n          href: \"https://github.com/zely-js/zely/blob/main/playground/typescript/pages/%5Bparams%5D/index.html\",\n          children: \"simple\\ncounter\"\n        })]\n      })\n    }), \"\\n\", _jsx(_components.h2, {\n      children: \"CLI Request Tool\"\n    }), \"\\n\", _jsx(_components.p, {\n      children: \"No need to write temporary scripts to test your server during development.\"\n    }), \"\\n\", _jsx(_components.figure, {\n      \"data-rehype-pretty-code-figure\": \"\",\n      children: _jsx(_components.pre, {\n        tabIndex: \"0\",\n        \"data-language\": \"ansi\",\n        \"data-theme\": \"material-theme-palenight github-light\",\n        children: _jsxs(_components.code, {\n          \"data-language\": \"ansi\",\n          \"data-theme\": \"material-theme-palenight github-light\",\n          style: {\n            display: \"grid\"\n          },\n          children: [_jsx(_components.span, {\n            \"data-line\": \"\",\n            children: _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#babed8\",\n                \"--shiki-light\": \"#24292e\"\n              },\n              children: \"$ zely request\"\n            })\n          }), \"\\n\", _jsx(_components.span, {\n            \"data-line\": \"\",\n            children: \" \"\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#babed8\",\n                \"--shiki-light\": \"#24292e\"\n              },\n              children: \"▸ baseURL: \"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#C3E88D\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#28a745\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \"http://localhost:3001\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            \"data-line\": \"\",\n            children: \" \"\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#676E95\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#959da5\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \"[12:31:35 AM]\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#82AAFF\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#0366d6\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \" info\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#babed8\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#24292e\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \" checking server... (requesting /)\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            \"data-line\": \"\",\n            children: \" \"\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#82AAFF\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#0366d6\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \"GET\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#babed8\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#24292e\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \"> /\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#C3E88D\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#28a745\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \"200\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#babed8\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#24292e\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \" {\\\"msg\\\":\\\"Hello\\\",\\\"name\\\":\\\"\\\"}\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#82AAFF\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#0366d6\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \"GET\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#babed8\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#24292e\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \">\"\n            })]\n          })]\n        })\n      })\n    }), \"\\n\", _jsx(_components.p, {\n      children: \"You can also use JavaScript to configure method, headers, and body inline:\"\n    }), \"\\n\", _jsx(_components.figure, {\n      \"data-rehype-pretty-code-figure\": \"\",\n      children: _jsx(_components.pre, {\n        tabIndex: \"0\",\n        \"data-language\": \"ansi\",\n        \"data-theme\": \"material-theme-palenight github-light\",\n        children: _jsxs(_components.code, {\n          \"data-language\": \"ansi\",\n          \"data-theme\": \"material-theme-palenight github-light\",\n          style: {\n            display: \"grid\"\n          },\n          children: [_jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#82AAFF\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#0366d6\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \"GET\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#babed8\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#24292e\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \"> config1 = { method: \\\"POST\\\", headers: { }, body: { name: \\\"Cat\\\" } }\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#82AAFF\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#0366d6\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \"GET\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#babed8\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#24292e\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \"> set(config1)\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#82AAFF\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#0366d6\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \"POST\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#676E95\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#959da5\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \"(config1)\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#babed8\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#24292e\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \"> /greeting\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            \"data-line\": \"\",\n            children: [_jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#C3E88D\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#28a745\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \"200\"\n            }), _jsx(_components.span, {\n              style: {\n                \"--shiki-dark\": \"#babed8\",\n                \"--shiki-dark-font-weight\": \"bold\",\n                \"--shiki-light\": \"#24292e\",\n                \"--shiki-light-font-weight\": \"bold\"\n              },\n              children: \" Hello, Cat!\"\n            })]\n          })]\n        })\n      })\n    }), \"\\n\", _jsx(Box, {\n      type: \"tip\",\n      children: _jsxs(_components.p, {\n        children: [\"Declare variables without using \", _jsx(_components.code, {\n          children: \"const\"\n        }), \" or \", _jsx(_components.code, {\n          children: \"let\"\n        }), \"—just type them directly in the prompt.\"]\n      })\n    }), \"\\n\", _jsx(_components.h2, {\n      children: \"Debugging\"\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"Check the \", _jsx(_components.a, {\n        href: \"/docs/debugging\",\n        children: \"debugging documentation\"\n      }), \" for more details.\"]\n    }), \"\\n\", _jsx(_components.h2, {\n      children: \"Conclusion\"\n    }), \"\\n\", _jsx(_components.p, {\n      children: \"This release makes zely faster, more modular, and ready for future features like frontend rendering and build-time optimizations.\\nWith the introduction of serpack, a new compiler architecture, and the return of server builds, zely is growing beyond just a micro-framework—it’s evolving into a complete platform for building fast, modern web applications.\"\n    }), \"\\n\", _jsx(_components.p, {\n      children: \"Give it a try and let us know what you think.\"\n    })]\n  });\n}\nfunction MDXContent(props = {}) {\n  const {wrapper: MDXLayout} = props.components || ({});\n  return MDXLayout ? _jsx(MDXLayout, {\n    ...props,\n    children: _jsx(_createMdxContent, {\n      ...props\n    })\n  }) : _createMdxContent(props);\n}\nreturn {\n  default: MDXContent\n};\nfunction _missingMdxReference(id, component) {\n  throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n","previousPost":{"title":"Why file-based routing?","date":"25-09-15","description":"Exploring the benefits of file-based routing and how it improves developer experience.","category":"Architecture"},"nextPost":{"title":"Serpack v0.1.31","date":"25-06-07","description":"Introducing new improvements and updates in Serpack v0.1.31.","category":"Release"}}