![reactrails](https://user-images.githubusercontent.com/10421828/79436261-52159b80-7fd9-11ea-994e-2a98dd43e540.png)

--- [![License](https://img.shields.io/badge/license-mit-green.svg)](LICENSE.md)[![Gem Version](https://badge.fury.io/rb/react_on_rails.svg)](https://badge.fury.io/rb/react_on_rails) [![npm version](https://badge.fury.io/js/react-on-rails.svg)](https://badge.fury.io/js/react-on-rails) [![Gem Downloads](https://img.shields.io/gem/dt/react_on_rails)](https://rubygems.org/gems/react_on_rails) [![Integration Tests](https://github.com/shakacode/react_on_rails/actions/workflows/integration-tests.yml/badge.svg)](https://github.com/shakacode/react_on_rails/actions/workflows/integration-tests.yml) [![Gem Tests](https://github.com/shakacode/react_on_rails/actions/workflows/gem-tests.yml/badge.svg)](https://github.com/shakacode/react_on_rails/actions/workflows/gem-tests.yml) [![JS Tests](https://github.com/shakacode/react_on_rails/actions/workflows/package-js-tests.yml/badge.svg)](https://github.com/shakacode/react_on_rails/actions/workflows/package-js-tests.yml) [![Linting](https://github.com/shakacode/react_on_rails/actions/workflows/lint-js-and-ruby.yml/badge.svg)](https://github.com/shakacode/react_on_rails/actions/workflows/lint-js-and-ruby.yml)

Documentation · Quick Start · Examples · Pro · Pro Pricing / Sign Up

## React on Rails React on Rails integrates React into Ruby on Rails applications with Rails view helpers, server-side rendering, hot reloading, and automatic bundle generation. This README is intentionally brief. For setup guides, architecture, API reference, upgrades, examples, and Pro features, use the main documentation site: [reactonrails.com/docs](https://reactonrails.com/docs/). React on Rails is maintained by [ShakaCode](https://www.shakacode.com). ## Start Here - [Documentation home](https://reactonrails.com/docs/) - [Quick Start](https://reactonrails.com/docs/getting-started/quick-start/) - [Create a new app](https://reactonrails.com/docs/getting-started/create-react-on-rails-app/) - [Install into an existing Rails app](https://reactonrails.com/docs/getting-started/existing-rails-app/) - [Examples](https://reactonrails.com/examples/) - [Compare OSS and Pro](https://reactonrails.com/docs/getting-started/oss-vs-pro/) - [Pro pricing and sign up](https://pro.reactonrails.com/) - [Compare with alternatives](https://reactonrails.com/docs/getting-started/comparison-with-alternatives/) - [Changelog](https://github.com/shakacode/react_on_rails/blob/main/CHANGELOG.md) These docs are for React on Rails 17. Historical docs and code are available for [v15](https://github.com/shakacode/react_on_rails/tree/15.0.0/docs) ([code](https://github.com/shakacode/react_on_rails/tree/15.0.0)), [v14](https://github.com/shakacode/react_on_rails/tree/14.0.0), [v13](https://github.com/shakacode/react_on_rails/tree/13.4.0), [v12](https://github.com/shakacode/react_on_rails/tree/12.6.0), and [v11](https://github.com/shakacode/react_on_rails/tree/11.3.0). See the [upgrade guide](https://reactonrails.com/docs/upgrading/upgrading-react-on-rails/#v15-retraction-notice) before using v15 material. ## Install in 30 Seconds Create a new React on Rails app: ```bash npx create-react-on-rails-app my-app cd my-app bin/rails db:prepare bin/dev ``` New apps default to React on Rails Pro for React 19.2 support. Use `--standard` only when you intentionally want an open-source-only setup. Add React on Rails to an existing Rails app: ```bash bundle add react_on_rails --strict bundle exec rails generate react_on_rails:install bin/dev ``` Render a component in any Rails view: ```erb <%= react_component("HelloWorld", props: { name: "World" }) %> ``` If you hit setup issues, run: ```bash bundle exec rake react_on_rails:doctor ``` ## Why Teams Use React on Rails - Render React directly inside Rails views with `react_component`. - Use Rails-oriented SSR in OSS, or upgrade to Pro for Node-rendered SSR, streaming SSR, and React Server Components. - Keep a single Rails app instead of splitting into a separate frontend and API. - Use modern bundling with Shakapacker, including Rspack support. ## React on Rails Pro React on Rails Pro adds higher-throughput SSR and advanced rendering features on top of the open-source gem, including Node renderer support, streaming SSR, React Server Components, fragment caching, and TanStack Router SSR. **ShakaCode Trust-Based Commercial Licensing:** Try Pro freely in development, test, CI/CD, and staging. No token is required to evaluate. If no license is configured, Pro keeps running and logs license status instead of blocking your app. Production deployments require a paid license; see [Pro pricing and sign up](https://pro.reactonrails.com/). Start with the docs here: - [React on Rails Pro docs](https://reactonrails.com/docs/pro/) - [OSS vs Pro feature comparison](https://reactonrails.com/docs/getting-started/oss-vs-pro/) - [Upgrade to Pro](https://reactonrails.com/docs/pro/upgrading-to-pro/) - [Pro pricing and sign up](https://pro.reactonrails.com/) ## Requirements - Ruby on Rails >= 5.2 - Shakapacker >= 6.0 (autobundling requires >= 7.0; CI tested: 8.2.0 - 10.3.0) - Ruby >= 3.3 (CI tested: 3.3 - 4.0) - Node.js >= 18 - A JavaScript package manager such as pnpm, npm, yarn, or bun ## Help - [Documentation](https://reactonrails.com/docs/) for the canonical guides and API reference - [GitHub Discussions](https://github.com/shakacode/react_on_rails/discussions) for questions - [GitHub Issues](https://github.com/shakacode/react_on_rails/issues) for bugs - [React + Rails Slack](https://reactrails.slack.com) for community chat (existing members; non-members, please use GitHub Discussions above) - [Commercial support](mailto:react_on_rails@shakacode.com) for upgrades, consulting, and Pro guidance - [AI Agent User Guide](AGENTS_USER_GUIDE.md) for AI coding assistants ## Contributing Bug reports and pull requests are welcome. Start with [CONTRIBUTING.md](https://github.com/shakacode/react_on_rails/blob/main/CONTRIBUTING.md) and the [help wanted issues](https://github.com/shakacode/react_on_rails/labels/contributions%3A%20up%20for%20grabs%21). ## Security Suspected security vulnerabilities should be reported privately. See [SECURITY.md](SECURITY.md) for the disclosure process and supported version policy. Please do not open a public issue for security reports. ## License React on Rails is available as open source under the terms of the [MIT License](https://github.com/shakacode/react_on_rails/blob/main/LICENSE.md). React on Rails Pro is offered under ShakaCode Trust-Based Commercial Licensing. No license token is required for evaluation, development, testing, or CI/CD; production deployments using Pro features require a paid license. See [React on Rails Pro](https://reactonrails.com/docs/pro/) and [Pro pricing and sign up](https://pro.reactonrails.com/) for details. ## Supporters Thanks to the companies supporting ShakaCode's open-source work.

JetBrains Scout Control Plane BrowserStack Honeybadger CodeRabbit