Introduction to the Course

Let's learn a bit about why we're using Rails.

A Dialogue

Let’s start the course by having a look at this conversation with a client.

Client-side code

In this course, you’ll learn how to enhance the user experience of a standard Rails application using front-end tools from the Rails ecosystem (Hotwire, Stimulus, Turbo, and Webpacker) and tools from the JavaScript ecosystem (webpack, TypeScript, and React).


To get the most out of this course, you’ll need some overall familiarity with web development and basic knowledge of Rails.

Basic assumptions

Rails is an opinionated framework, meaning that Rails makes certain tasks easier if we structure our program in the way the Rails core team suggests, which we will do for this course. We won’t explore every possible way Rails and JavaScript can combine, but instead focus on the tools that will be most useful.

To help us learn these tools, we’ll walk through the creation of your own Rails web app., We’ll use JavaScript to enhance a mostly server-side Rails application rather than building a completely separate single-page application (SPA) that only uses Rails as an application programming interface (API).

As we gradually build on this app, we’ll explore a wide range of tools, architectures, and techniques that might be appropriate for the application. We’ll navigate that space and explore different ways of structuring a Rails/JavaScript collaboration. Let’s get started!