// the find
stimulusreflex/stimulus_reflex
Build reactive applications with the Rails tooling you already know and love.
StimulusReflex brings Phoenix LiveView-style reactivity to Rails by running reflex actions server-side over ActionCable and morphing the DOM client-side via CableReady. It's for Rails developers who want real-time interactivity without adopting React or Vue. The model is: click triggers a WebSocket call, server re-renders, diff gets applied — no JSON API, no SPA.
The morph modes (page, selector, nothing) give you meaningful control over how much of the DOM gets replaced — 'nothing' lets you use it purely as a server-side event bus. ViewComponent and Russian doll caching work as expected since you're still just rendering ERB. The JS client is small (~20 files, no framework dependency beyond Stimulus) and the test suite covers both the Ruby and JavaScript sides. Generator support across ESBuild, Vite, Importmap, and Webpacker means you don't have to fight your asset pipeline.
Hotwire (Turbo Streams + Stimulus) has effectively won this space within the Rails ecosystem, and StimulusReflex sits in an awkward position: it's not deprecated, but the community energy has clearly shifted. The ActionCable dependency is non-negotiable — you need a persistent WebSocket server, which rules out purely serverless or CDN-edge deployments and adds Redis to your stack. Debugging morphs gone wrong is genuinely painful: when the DOM diff produces unexpected results, the error surface spans your ERB, the CableReady operation, and the Stimulus controller simultaneously. The 2.3k stars and slow fork growth suggest a stable-but-shrinking adopter base rather than an active growth trajectory.