Return to
the Golden
Era of Web
Development

Build reactive apps with a
server-rendered architecture.

Free Britney Now!

StimulusReflex is an implementation for classic Rails architecture: Server sends a whole HTML to the browser, the browser displays it as is, JS listens to user’s input, notifies about them the server (Stimulus), server reacts on them appropriately and responds with a new page, or a piece of page to be rerendered (Reflex).

Better DX

class CustomersReflex < ApplicationReflex
  def facet
    filter = CustomerFilter.find(element.dataset.filter)
    yield filter
    pagy, customers = pagy(filter.scope, page: filter.page, items: filter.items)
    morph customers
    morph "#paginator", render(partial: "customers/paginator", locals: {pagy: pagy, filter: filter})
  end
end

Write less code

Server is the single source of truth

All state is maintained by the server. Any updated view content is automatically morphed on the client. No need for duplicating business logic on front-end side and keeping it synced with the server.

Only one language is required

StimulusReflex uses Ruby. A stable, well-maintained, robust language. Front-end side uses HTML and lightweight JavaScript generated by the server. JavaScript only monitors user inputs and notifies the server.

Send HTML to the web browser

Server composing a whole page code as HTML. No need for reimplementing basic web functionality in JavaScript.

See how to start to develop with StimulusReflex

Faster development

Tiny peripherals

You need only Redis or another DB. No GraphQL, Apollo, Redux, and other moving parts.

Well documented, 24/7 support

StimulusReflex is extremely well documented with current samples. Use Discord community for any additional questions.

No inter-team syncranizations

Smaller team is needed. Since no logic is implemented on the front-end side, the front end teem is much smaller and does pretty isolated tasks. One person can confidently implement and deploy a complex feature.

Ask a question in Discord Community

Scalability

ActionCable

For playground projects, use ActionCable – a default Rails module which is easy to start with.

AnyCable

For production ready projects, use AnyCable. It outperforms ActionCable and gives you a real Real-time.

AnyCable Pro

For high-loaded projects, use AnyCable Pro. It reduces memory usage, saves bandwidth and gives priority support by the developers.

Read more about AnyCable

Hot questions

I’m working on a mature web app using React. Can I easily migrate to StimulusReflex? Unfortunately, you need to rewrite it. But you’ll reuse most of the code pieces.
I’m developing a real-time application with lots of interactions. Is StimulusReflex a good replacement for React? Sure it is! Use AnyCable library to get real-time updates.
My app is mobile first. Can I write is using StimulusReflex? Yes, you can. StimulusReflex supports native mobile platforms.

Better UX

Faster page loading and update

Pages load with no delay

HTML is rendered immediately by the browser, no intermediate JSON parsing.

Faster response

Round-trip actions and updates typically occur in 10-25ms, depending on geography.

Mobile devices support

Works greate on any, even the oldest ones, modile devices.

See demo

Saving traffic and battery

Tiny bundle size

Front-end part of the app is 10x smaller than while using React.

Less traffic per interaction

Client sends light-weight notifications. Data transferring is well-optimized.

Low battery usage

Very little CPU activity when serving HTML content to a browser save battery from draining.

See video

Hot questions

I’m working on a mature web app using React. Can I easily migrate to StimulusReflex? Unfortunately, you need to rewrite it. But you’ll reuse most of the code pieces.
I’m developing a real-time application with lots of interactions. Is StimulusReflex a good replacement for React? Sure it is! Use AnyCable library to get real-time updates.
My app is mobile first. Can I write is using StimulusReflex? Yes, you can. StimulusReflex supports native mobile platforms.

Cost Saving

Smaller team doing more

No need for high-skilled front-end

One full stack Rails developer can build a single codebase that serves web and native mobile.

Launch in days, not months

Less inter-team communication causes less delay and time to make an agreement.

Easy learning curve

Good documentations allow quick start and speeds up the development.

See how to start to develop with StimulusReflex

CableReady is ready to serve

Launch in days, not months

Less inter-team communication causes less delay and time to make an agreement.

Easy learning curve

Good documentations allow quick start and speeds up the development.

Read more about CableReady

More responsive screens, simpler code, amazing support.

Andrew Cetinic
CEO, PeopleForce

What matters is your productivity and how much you enjoy working with a library. I found myself very productive, and I really enjoyed it.

Sam Sweeney
CEO, Trivvy

SR saved my day, my (chunky) bacon, my sanity, my dignity, and who knows what else! What a time to be alive!

Trinity Takei
Lead Developer, RCRDSHP

There are a few cases when StimulusReflex is not the best option

Offline first

If your application should work in offline mode, stick with React approach.

Games, 3D, AR/VR

Games and other highly interactive apps are not best fit to StimulusReflex.

Your team is mainly front-end

JS devs may find it hard to learn Rails.

Subscribe for updates


© StimulusReflex, 2025 GitHub Documentation CableReady AnyCable