{"id":23428516,"url":"https://github.com/huijiewei/resolid-react-router-hono","last_synced_at":"2026-03-02T08:31:19.490Z","repository":{"id":269247786,"uuid":"906856081","full_name":"huijiewei/resolid-react-router-hono","owner":"huijiewei","description":"React Router Hono Server","archived":false,"fork":false,"pushed_at":"2025-12-03T01:57:57.000Z","size":984,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-06T02:33:14.517Z","etag":null,"topics":["hono","netlify","react-router","vercel"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/huijiewei.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-22T05:31:03.000Z","updated_at":"2025-12-03T01:57:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"ddc18e90-74c1-402c-b239-3e1407763196","html_url":"https://github.com/huijiewei/resolid-react-router-hono","commit_stats":null,"previous_names":["huijiewei/resolid-react-router-hono"],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/huijiewei/resolid-react-router-hono","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huijiewei%2Fresolid-react-router-hono","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huijiewei%2Fresolid-react-router-hono/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huijiewei%2Fresolid-react-router-hono/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huijiewei%2Fresolid-react-router-hono/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/huijiewei","download_url":"https://codeload.github.com/huijiewei/resolid-react-router-hono/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huijiewei%2Fresolid-react-router-hono/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29995912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hono","netlify","react-router","vercel"],"created_at":"2024-12-23T07:13:09.740Z","updated_at":"2026-03-02T08:31:19.472Z","avatar_url":"https://github.com/huijiewei.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @resolid/react-router-hono\n\n[简体中文](README.zh_CN.md)\n\nResolid React-Router extension package, mainly some plug-ins to enhance React-Router and needs to be used with Vite\n\n## Feature\n\n- [Dev Server](#dev-server)\n- [Node.js Serve](#nodejs-serve)\n- [Vercel Serve](#vercel-serve)\n- [Netlify Serve](#netlify-serve)\n- [Hono Middleware](#hono-middleware)\n- [React Router Load Context](#remix-load-context)\n\n## Install\n\n```bash\npnpm add -D @resolid/react-router-hono\n```\n\n## Install related dependencies\n\n```bash\npnpm add hono @hono/node-server\n```\n\n## Dev Server\n\nEdit vite.config.ts to config dev server\n\n```ts\n// vite.config.ts\nimport { reactRouter } from \"@react-router/dev/vite\";\nimport { reactRouterHonoServer } from \"@resolid/react-router-hono/dev\";\nimport { defineConfig } from \"vite\";\nimport tsconfigPaths from \"vite-tsconfig-paths\";\n\nexport default defineConfig({\n  plugins: [\n    reactRouterHonoServer({\n      // Entry file\n      entryFile: \"server.node.ts\", // default is server.ts\n    }),\n    reactRouter(),\n    tsconfigPaths(),\n  ],\n});\n```\n\n## Node.js Serve\n\n### Create Node.js Server\n\n```ts\n// app/server.node.ts\nimport { createHonoNodeServer } from \"@resolid/react-router-hono/node-server\";\n\nexport default await createHonoNodeServer();\n```\n\n### Config Node.js Preset in React Router Config\n\n```ts\n// react-router.config.ts\nimport type { Config } from \"@react-router/dev/config\";\nimport { nodePreset } from \"@resolid/react-router-hono/node-preset\";\n\nexport default {\n  presets: [\n    nodePreset({\n      // Entry file\n      entryFile: \"server.node.ts\", // default is server.ts\n      nodeVersion: 22, // default is 22\n    }),\n  ],\n} satisfies Config;\n```\n\nSupports the `SERVER_PORT` and `SERVER_PATH` environment variables. The `SERVE_PATH` environment variable is\nfor React Router's serverBundles feature.\n\n\u003e After running build, `server.mjs` and `package.json` files will be automatically generated in the `build/server`\n\u003e directory. The `package.json` file defines the `ssr.external` set by Vite in the server directory. Run `npm install`\n\u003e to\n\u003e install dependencies excluded during build\n\n## Vercel Serve\n\n\u003e You can use https://github.com/huijiewei/react-router-hono-vercel-template to quick start deploy to vercel.\n\n### Create Vercel server\n\n```ts\n// app/server.vercel.ts\nimport { createHonoVercelServer } from \"@resolid/react-router-hono/vercel-server\";\n\nexport default await createHonoVercelServer();\n```\n\n### Config Vercel Preset in React Router Config\n\n```ts\n// react-router.config.ts\nimport type { Config } from \"@react-router/dev/config\";\nimport { vercelPreset } from \"@resolid/react-router-hono/vercel-preset\";\n\nexport default {\n  presets: [\n    vercelPreset({\n      // Entry file\n      entryFile: \"server.vercel.ts\", // default is server.ts\n      nodeVersion: 22, // default is 22\n    }),\n  ],\n} satisfies Config;\n```\n\n\u003e Vercel project Framework Preset needs to be set to Vite, Node.js Version needs to be same\n\u003e\n\u003e If you are using a monorepo structure, please set the Root Directory to the project directory that needs to be\n\u003e deployed, and then customize the relevant commands. The configuration\n\u003e of [Resolid](https://github.com/huijiewei/resolid)\n\u003e is as shown below\n\u003e ![Vercel related settings](.github/assets/vercel-settings.png)\n\n## Netlify Serve\n\n\u003e You can use https://github.com/huijiewei/react-router-hono-netlify-template to quick start deploy to netlify.\n\n### Create Netlify server\n\n```ts\n// app/server.netlify.ts\nimport { createHonoNetlifyServer } from \"@resolid/react-router-hono/netlify-server\";\n\nexport default await createHonoNetlifyServer();\n```\n\n### Config Netlify Preset in React Router Config\n\n```ts\n// react-router.config.ts\n\nimport type { Config } from \"@react-router/dev/config\";\nimport { netlifyPreset } from \"@resolid/react-router-hono/netlify-preset\";\n\nexport default {\n  presets: [\n    netlifyPreset({\n      // Entry file\n      entryFile: \"server.netlify.ts\", // default is server.ts\n      nodeVersion: 22, // default is 22\n    }),\n  ],\n} satisfies Config;\n```\n\n## Hono Middleware\n\nMiddleware are functions that are called before React Router calls your loader/action. See\nthe [Hono docs](https://hono.dev/docs/guides/middleware) for more information.\n\nYou can use configure option in createHonoNodeServer or createHonoVercelServer to use Hono middleware\n\n```ts\nimport { createHonoNodeServer } from \"@resolid/react-router-hono/node-server\";\n\nexport default await createHonoNodeServer({\n  configure: (server) =\u003e {\n    server.use(/* Hono Middleware */);\n  },\n});\n```\n\n## React Router load context\n\nIf you'd like to add additional properties to the load context, you can config getLoadContext option in\ncreateHonoNodeServer or createHonoVercelServer to augmenting load context.\n\n```ts\nimport { createHonoNodeServer } from \"@resolid/react-router-hono/node-server\";\nimport type { HttpBindings } from \"@hono/node-server\";\nimport type { Context } from \"hono\";\n\nexport default await createHonoNodeServer({\n  getLoadContext: (c: Context\u003c{ Bindings: HttpBindings }\u003e) =\u003e {\n    return {\n      remoteAddress: c.env.incoming.socket.remoteAddress,\n    };\n  },\n});\n```\n\n## Acknowledgment\n\n- [@hono/vite-dev-server](https://github.com/honojs/vite-plugins/tree/main/packages/dev-server)\n- [react-router-hono-server](https://github.com/rphlmr/react-router-hono-server)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuijiewei%2Fresolid-react-router-hono","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhuijiewei%2Fresolid-react-router-hono","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuijiewei%2Fresolid-react-router-hono/lists"}