finds.dev← search

// the find

shakacode/react_on_rails

★ 5,190 · Ruby · NOASSERTION · updated Jun 2026

Integration of React + Webpack + Rails including server-side rendering of React, enabling a better developer experience and faster client performance.

React on Rails is the go-to solution for Rails teams who want React in their views without splitting into a separate frontend app. It wires React components into ERB via view helpers, handles SSR, and manages Webpack/Shakapacker integration. Been around since Rails 4, actively maintained, and used in production by teams who chose Rails and want to keep it.

The `react_component` helper is genuinely well-designed — passing props as JSON from Ruby to React is clean and the hydration story is solid. SSR in the open-source version works without Node, using the ExecJS-based renderer, which means no separate Node process to babysit. The Shakapacker integration with Rspack support means build times are actually tolerable now. The `rake react_on_rails:doctor` diagnostic command is the kind of DX detail most gems skip — it catches the common setup mistakes before you spend an afternoon debugging.

The highest-value SSR features — streaming, React Server Components, fragment caching — are behind a paid Pro license, so the OSS version is increasingly a demo of what you could have if you paid. The gem has a lot of moving parts (Ruby gem + npm package + Shakapacker config + optional Node renderer) and the version matrix between all of them has historically been a source of upgrade pain; the CHANGELOG is long for a reason. The Ruby-based SSR renderer has a thread-safety history that required workarounds, and performance under load is meaningfully worse than the Node renderer you only get with Pro. If you're starting fresh in 2024, you should seriously consider whether Inertia.js is a simpler fit.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →