stimulusreflex / stimulus_reflex

Build reactive applications with the Rails tooling you already know and love.
https://docs.stimulusreflex.com
MIT License
2.29k stars 174 forks source link
actioncable cableready hacktoberfest hotwire rails reactive ruby ruby-on-rails server-side-rendering stimulus stimulusreflex turbo turbolinks websocket

Welcome to StimulusReflex πŸ‘‹

downloads License: MIT Documentation
semantic-release Ruby Code Style JavaScript Code Style
Prettier-Standard StandardRB Tests


πŸŽ‰ An exciting new way to build modern, reactive, real-time apps with Ruby on Rails.

StimulusReflex eliminates the complexity imposed by full-stack frontend frameworks. And, it's fast.

It works seamlessly with the Rails tooling you already know and love.

Our goal is to help small teams do big things with familiar tools.

This project strives to live up to the vision outlined in The Rails Doctrine.

πŸ“š Docs

✨ Demos

πŸ‘©β€πŸ‘©β€πŸ‘§ Discord Community

Please join over 2000 of us on Discord for support getting started, as well as active discussions around Rails, Hotwire, Stimulus, Phlex and CableReady.

Stop by #newcomers and introduce yourselves!

πŸ’™ Support

Your best bet is to ask for help on Discord before filing an issue on GitHub. We are happy to help, and we ask people who need help to come with all relevant code to look at. A git repo is preferred, but Gists are fine, too. If you need a template for reproducing your issue, try this.

Please note that we are not actively providing support on Stack Overflow. If you post there, we likely won't see it.

πŸš€ Installation and upgrading

CLI and manual setup procedures are fully detailed in the official docs.

Rubygem

bundle add stimulus_reflex

JavaScript

There are a few ways to install the StimulusReflex JavaScript client, depending on your application setup.

ESBuild / Webpacker

yarn add stimulus_reflex

Importmaps

# config/importmap.rb

# ...

pin 'stimulus_reflex', to: 'stimulus_reflex.js', preload: true

Rails Asset pipeline (Sprockets):

<!-- app/views/layouts/application.html.erb -->

<%= javascript_include_tag "stimulus_reflex.umd.js", "data-turbo-track": "reload" %>

πŸ™ Contributing

Code of Conduct

Everyone interacting with the StimulusReflex project’s codebases, issue trackers, chat rooms and forum is expected to follow the Code of Conduct.

Coding Standards

This project uses Standard for Ruby code and Prettier-Standard for JavaScript code to minimize bike shedding related to source formatting.

Please run ./bin/standardize prior to submitting pull requests.

View the wiki to see recommendations for configuring your editor to work best with the project.

πŸ“¦ Releasing

  1. Always publish CableReady first!
  2. Update the cable_ready dependency version in stimulus_reflex.gemspec and package.json
  3. Make sure that you run yarn and bundle to pick up the latest.
  4. Bump version number at lib/stimulus_reflex/version.rb. Pre-release versions use .preN
  5. Run bundle exec rake build and yarn build
  6. Run bin/standardize
  7. Commit and push changes to GitHub
  8. Run bundle exec rake release
  9. Run yarn publish --no-git-tag-version
  10. Yarn will prompt you for the new version. Pre-release versions use -preN
  11. Commit and push changes to GitHub
  12. Create a new release on GitHub (here) and generate the changelog for the stable release for it

πŸ“ License

StimulusReflex is released under the MIT License.


Originally inspired by Phoenix LiveView. πŸ™Œ