Introduction to Stimulus

Get an overview of how Stimulus allows us to build complex interactive functionality into our app.

We'll cover the following


In the last chapter, we saw how Turbo allows us to build interactivity into a web application without any JavaScript. Still, some things can only be done on the client, like animations, or are display-only changes that the server doesn’t need to know about. For those, we turn to the other part of the Hotwire HTML story: Stimulus.

Stimulus is a JavaScript tool that integrates with HTML and is designed to adapt to new HTML as it changes the DOM. This means that it’s specifically good at dealing with the DOM changes that come from Turbo Frames or Turbo Streams.

In this chapter, we’re going to use the Stimulus library to start adding features to our schedule page. Along the way, we’ll explore Stimulus’ basic concepts and then combine those concepts to build complex functionality into our app.