Waku is a minimal React framework designed for building performant web applications with a focus on React Server Components (RSC) and React 19 features. Currently in its v1.0.0-alpha.7 release, it is under active development with frequent alpha releases that may introduce breaking changes, particularly in adapters and internal APIs. Waku is optimized for marketing sites, blogs, headless commerce, and web apps where a lightweight footprint and full-stack React composability are key differentiators. Unlike heavier frameworks, it emphasizes a lean approach, prioritizing a fun developer experience with modern React paradigms. It supports all the latest React 19 features, including server components and actions, aiming for smaller client bundle sizes by leveraging server-side rendering extensively. It requires Node.js `^24.0.0`, `^22.12.0`, or `^20.19.0`.
npm install wakuVerified import paths — ran on the pinned version, not inferred.
Sets up a basic Waku project with a configuration file, a main application router, and a client-side counter component to demonstrate interactivity and routing.
Regularly review release notes and test thoroughly when upgrading alpha versions. Refer to the official migration guides for specific changes.
Update your `wrangler.jsonc` file's `main` property to `"./src/wa"` as shown in the v1.0.0-alpha.4 migration guide.
Consult the `v1.0.0-alpha.3` release notes for the new option name and update your configuration file accordingly.
Move your API route files from `./src/pages/api/` to `./src/pages/_api/`. To preserve the `api/` prefix in URLs, move them to `./src/pages/_api/api/`.
Ensure your Node.js version is `^24.0.0` or `^22.12.0` or `^20.19.0`. Use a Node.js version manager like `nvm` to switch if necessary.
Install the exact peer dependency versions specified by Waku in your project: `npm install react@~19.2.4 react-dom@~19.2.4 react-server-dom-webpack@~19.2.4`.
Ensure `'use client';` or `'use server';` is the absolute first line of code in the file, including comments or blank lines.
Migrate your project to use ES Modules (e.g., set `"type": "module"` in `package.json` and use `import` statements), or use dynamic `import()` for specific modules that are exclusively ESM.
Install the missing peer dependency: `npm install react-server-dom-webpack@~19.2.4` (adjust the version to match Waku's `peerDependencies`).
Upgrade or switch your Node.js version to one within the supported range (e.g., Node.js 20.x, 22.x, or 24.x) using `nvm` or similar tools.