You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+13Lines changed: 13 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,13 +24,26 @@ After a release, run `/update-changelog` in Claude Code to analyze commits, writ
24
24
25
25
### [Unreleased]
26
26
27
+
#### Removed
28
+
29
+
-**[Pro]****Removed the `--rsc-pro` install generator flag**: `--rsc` already implies Pro, so the separate mode was unnecessary. Behaviors previously gated on `--rsc-pro` (Pro verification checklist, prerelease install note, exact Pro gem pin on prereleases) now fire on `--rsc` installs. See also [Issue 3104](https://github.com/shakacode/react_on_rails/issues/3104), which tracks unrelated silent-failure bugs in the Pro upgrade automation. [PR 3105](https://github.com/shakacode/react_on_rails/pull/3105) by [ihabadham](https://github.com/ihabadham).
30
+
31
+
#### Changed
32
+
33
+
-**[Pro]****Pro generator now creates the Node Renderer at `renderer/node-renderer.js`**: The canonical location for the Node Renderer entry point is now a dedicated top-level `renderer/` directory instead of `client/`, making it straightforward to exclude from production Docker builds that strip JS sources after bundling. Docs and Pro `spec/dummy` now use the new path consistently. Existing apps are unaffected — the generator skips files that already exist (including a legacy `client/node-renderer.js`). Fixes [Issue 3073](https://github.com/shakacode/react_on_rails/issues/3073). [PR 3165](https://github.com/shakacode/react_on_rails/pull/3165) by [justin808](https://github.com/justin808).
34
+
27
35
#### Fixed
28
36
29
37
-**Scaffolded CI workflow pins a pnpm version when `packageManager` is absent**: The generated `.github/workflows/ci.yml` now emits `with: version:` for `pnpm/action-setup@v4` when pnpm is detected from `pnpm-lock.yaml` alone, preventing the setup step from failing before dependency install. When `packageManager` is declared in `package.json`, the version key is omitted so the action can read the pin from there. Fixes [Issue 3172](https://github.com/shakacode/react_on_rails/issues/3172). [PR 3174](https://github.com/shakacode/react_on_rails/pull/3174) by [justin808](https://github.com/justin808).
38
+
-**[Pro]****Node renderer now exposes `performance` when `supportModules: true`**: React 19's development build of `React.lazy` calls `performance.now()`, which previously threw `ReferenceError: performance is not defined` inside the node renderer's VM context unless users manually added `performance` via `additionalContext`. `performance` is now included in the default globals alongside `Buffer`, `process`, etc. Fixes [Issue 3154](https://github.com/shakacode/react_on_rails/issues/3154). [PR 3158](https://github.com/shakacode/react_on_rails/pull/3158) by [justin808](https://github.com/justin808).
30
39
-**Client startup now recovers if initialization begins during `interactive` after `DOMContentLoaded` already fired**: React on Rails now still initializes the page when the client bundle starts in the browser timing window after `DOMContentLoaded` but before the document reaches `complete`. Fixes [Issue 3150](https://github.com/shakacode/react_on_rails/issues/3150). [PR 3151](https://github.com/shakacode/react_on_rails/pull/3151) by [ihabadham](https://github.com/ihabadham).
31
40
-**Doctor accepts TypeScript server bundle entrypoints**: `react_on_rails:doctor` now resolves common source entrypoint suffixes (`.js`, `.jsx`, `.ts`, `.tsx`, `.mjs`, `.cjs`) before warning that the server bundle is missing, preventing false positives when apps use `server-bundle.ts`. [PR 3111](https://github.com/shakacode/react_on_rails/pull/3111) by [justin808](https://github.com/justin808).
32
41
-**Doctor no longer fails custom projects for a missing generated `bin/dev`**: `react_on_rails:doctor` now downgrades a missing official React on Rails `bin/dev` launcher from an error to a warning and adds explicit guidance when a custom `./dev` script is detected, so custom projects can pass diagnostics when their development setup is intentional. Fixes [Issue 3103](https://github.com/shakacode/react_on_rails/issues/3103). [PR 3117](https://github.com/shakacode/react_on_rails/pull/3117) by [justin808](https://github.com/justin808).
33
42
43
+
#### Changed
44
+
45
+
-**Rspack install scaffolding now targets Rspack v2**: `react_on_rails:install --rspack` and `bin/switch-bundler` now generate the Rspack v2 package line (`@rspack/core@^2.0.0-0`, `@rspack/cli@^2.0.0-0`, `@rspack/plugin-react-refresh@^2.0.0`) while keeping `rspack-manifest-plugin@^5.0.0`, which is already compatible. Closes [Issue 3082](https://github.com/shakacode/react_on_rails/issues/3082). [PR 3084](https://github.com/shakacode/react_on_rails/pull/3084) by [justin808](https://github.com/justin808).
-**[KissKissBankBank](https://www.kisskissbankbank.com/)**, large French crowdfunding platform.
22
22
-**HVMN**: Web ecommerce site for "biohacking" products.
23
-
-**[GuavaPass](https://guavapass.com/)**: Coaching client of [ShakaCode](https://www.shakacode.com) and React on Rails fan!
24
23
-**[Pivotal Tracker](http://www.pivotaltracker.com/)**: The first (and most-loved) agile project management tool built on Rails. React on Rails has greatly simplified integration and workflow for our React components in Rails!
25
24
-**[Estately](https://www.estately.com)**: Home search.
26
25
-**[Blink Inc](https://www.blinkinc.com)**: Website and more built by [ShakaCode](https://www.shakacode.com).
-[Compare with alternatives](./oss/getting-started/comparing-react-on-rails-to-alternatives.md) — decision guide covering Hotwire, Inertia, Next.js, and more
27
28
-[Migrate from react-rails](./oss/migrating/migrating-from-react-rails.md)
28
-
-[Published migration example repo (Rails 7)](https://github.com/shakacode/react-on-rails-migration-example)
> **Note (Pro):** React on Rails Pro hydrates streamed components early (before `DOMContentLoaded`) automatically — no per-component toggle is exposed.
Copy file name to clipboardExpand all lines: docs/oss/building-features/node-renderer/basics.md
+5-4Lines changed: 5 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,7 @@ See the [Memory Leaks guide](../../../pro/js-memory-leaks.md) for common leak pa
27
27
28
28
**node-renderer** is a standalone Node application to serve React SSR requests from a **Rails** client. You don't need any **Ruby** code to setup and launch it. You can configure with the command line or with a launch file.
29
29
30
-
> **Generator shortcut:** Running `rails generate react_on_rails:install --pro` (or `rails generate react_on_rails:pro` for existing apps) automatically creates `client/node-renderer.js`, adds the Node Renderer process to `Procfile.dev`, and installs the required npm packages. See [Installation](../../../pro/installation.md) for details. The manual setup below is for apps that need custom configuration.
30
+
> **Generator shortcut:** Running `rails generate react_on_rails:install --pro` (or `rails generate react_on_rails:pro` for existing apps) automatically creates `renderer/node-renderer.js`, adds the Node Renderer process to `Procfile.dev`, and installs the required npm packages. See [Installation](../../../pro/installation.md) for details. The manual setup below is for apps that need custom configuration.
31
31
32
32
## Simple Command Line for node-renderer
33
33
@@ -65,7 +65,7 @@ For the most control over the setup, create a JavaScript file to start the NodeR
65
65
# or: yarn add react-on-rails-pro-node-renderer
66
66
# or: bun add react-on-rails-pro-node-renderer
67
67
```
68
-
4. Configure a JavaScript file that will launch the rendering server per the docs in [Node Renderer JavaScript Configuration](./js-configuration.md). For example, create a file `node-renderer.js`. Here is a simple example that uses all the defaults except for serverBundleCachePath:
68
+
4. Configure a JavaScript file that will launch the rendering server per the docs in [Node Renderer JavaScript Configuration](./js-configuration.md). For example, create a file `renderer/node-renderer.js`. Here is a simple example that uses all the defaults except for serverBundleCachePath:
69
69
70
70
```javascript
71
71
importpathfrom'path';
@@ -78,7 +78,7 @@ For the most control over the setup, create a JavaScript file to start the NodeR
78
78
reactOnRailsProNodeRenderer(config);
79
79
```
80
80
81
-
5. Now you can launch your renderer server with `node node-renderer.js`. You will probably add a script to your `package.json`.
81
+
5. Now you can launch your renderer server with `node renderer/node-renderer.js`. You will probably add a script to your `package.json`.
82
82
6. You can use a command line argument of `-p SOME_PORT` to override any configured or ENV value for the port.
83
83
84
84
## Setup Rails Application
@@ -157,13 +157,14 @@ The Node Renderer must be started as a background process before running tests.
0 commit comments