Introduction
Getting started
Scaffold an app, run the dev server, ship a production build.
rshono is a web framework built on Hono, Rspack and
React Server Components. One required file
(src/routes.ts), one optional file (src/server.ts), nine exported values.
Alpha. Built on Rspack's experimental RSC support (
rspack.experiments.rsc) andreact-server-dom-rspack, which is still0.0.x. Both are pinned to exact versions, so a release of rshono is what moves them.
Scaffold
npx @rshono/create@latest my-apppnpx @rshono/create@latest my-appyarn dlx @rshono/create@latest my-appbunx @rshono/create@latest my-appThe runner you use is the package manager the project gets — read from npm_config_user_agent, written
into packageManager, and used for the install. --pm npm|pnpm|yarn|bun overrides the guess.
The scaffolder asks for a deploy target, a styling choice and a formatter/linter preset. Every question
is also a flag, and a non-interactive terminal implies --yes:
npx @rshono/create@latest my-app -y --deploy cloudflare --tailwind --quality biomepnpx @rshono/create@latest my-app -y --deploy cloudflare --tailwind --quality biomeyarn dlx @rshono/create@latest my-app -y --deploy cloudflare --tailwind --quality biomebunx @rshono/create@latest my-app -y --deploy cloudflare --tailwind --quality biomeCommands
rshono dev # dev server with HMR (default port 3000)
rshono build # production build: client + server bundles + prerendered pages
rshono start # run the production build
rshono dev always runs the Node dev server, whatever deploy target you picked. The target is a
property of the build, not of developing.
Requirements
- Node ≥ 22.18 — worker threads,
process.loadEnvFile,Promise.withResolvers,URL.parse, and native TypeScript stripping, so a.tsconfig needs no loader. - React ≥ 19.1 — the floor
react-server-dom-rspackrequires.
Next
- Project layout — what the framework knows about.
- Routing — the one required file.
- Pages — how a server component becomes a page.
- API reference — every export.