The rebuilding turbo-rails tutorial is out!
View new course →

Learn to create Rails engines by rebuilding the turbo-rails gem

Do you want to become a better Ruby on Rails developer? Do you wish you could read the source code of a gem instead of relying on documentation? Or maybe you want to start contributing to open-source? Then this new course is for you!
View the course →

Leveling up as a Ruby on Rails developer is hard

According to DHH, the secret to becoming a better Ruby on Rails developer is simple; you need to read a lot of software.

But where should you start?

I remember when I first tried to read a gem. It was the Factory Bot gem, which was a bit less than 1_000 commits long at the time. I opened the code, and BOOM, I was completely lost. What file should I read first? Where does the program start, and where does it end? I didn't understand much.

I really wanted to level up my Ruby and Ruby on Rails skills, so I had the idea to rebuild the Factory Bot gem from the first commit. I learned two things by doing this exercise:

  • First, reading software truly is the best way to make substantial progress as a developer.
  • Second, it was hard to learn all of this on my own. I wish I had a guide who could show me what the structure of a gem is and which files to look at first.

Let's do some pair-programming together

In this course, we will rebuild the turbo-rails gem step-by-step by pair-programming together.

By the end of the course, you will:

  • Be able to understand the code of the whole turbo-rails gem, and contribute to it yourself.
  • Be able to apply this knowledge to read and understand the source code of other Rails engines, such as Action Text or Active Storage.
  • Be able to read a lot of code written by some very talented developers and become a better developer yourself!

What does the course cover?

In this course, we will:

  • Learn to create Ruby on Rails engines with the rails plugin new command.
  • Use the test/dummy Rails application to develop our gem.
  • Use ActionView, ActionCable, ActiveJob to achieve complex behavior and make the different parts of Rails work together, thanks to the Rails::Engine class.
  • Understand how security works in depth by default with turbo-rails.
  • Write rake tasks leveraging the power of Rails templates to install our engine in a Ruby on Rails application.
  • Write helper, channel, and controller tests to test our Rails engine.
  • Become a turbo-rails expert by understanding all the source code.
If you want to have a closer look at what we will build, you can have a look at the code we are going to write together in the Github repository of the course. You can also see the full list of chapters on the index page of the course.

Frequently asked questions

Are there any prerequisites for this course?

The only pre-requisite is that you have some knowledge of Turbo Rails which you can get by reading the Turbo Rails Tutorial for free on this website!

Are you qualified to teach that course?

Even though I am not a big contributor, I have contributed a few times to turbo-rails. I also contributed to other engines in Ruby on Rails, such as ActiveRecord, ActionMailer, or ActionText.

Can I get my money back if I don't like the course?

I'd rather have no customers at all than unhappy customers! If you don't like the course or if it's not what you expected, I will provide a full refund within the first 14 days from purchase.