Credits: My Neighbor Totoro

New to the Blog? Start Here...

Programming in Ruby will make you a happy and productive developer.

If you would like to start learning Ruby and Rails, check out the following article which provides a step-by-step path for beginners as well as intermediate programmers to get into the magical world of Ruby and Rails. If you like to learn by reading books (I do), you're in for a treat.

A List of Books to Learn Programming with Ruby and Rails
This post provides a curated list of books to learn to code in Ruby and build web applications with Rails. It also gives a step-by-step path you can follow to learn enough before moving to the next step. If you ever wanted to learn to program but didn’t know where to start, this post is for you.

If you already know Ruby but are intimidated with Rails, or maybe you think it's magic (it's not), check out my ruby-no-rails series, where we'll build a complete web application in pure Ruby, without using any Rails. The goal for this series is to get a deeper appreciation for all the things Rails handles for you and get a better understanding of how most web applications work.

Let’s Build a Web Application in Ruby without Rails
Rails is great for building web apps. But it can be quite overwhelming if you don’t know how web applications work. In this series of articles, we’ll build a simple but complete app in plain Ruby without Rails, to get a deeper understanding and appreciation of everything Rails does for us.

It's a work in progress, but my goal is to take you behind the scenes of a web application framework and show you how you might implement various framework features (the MVC pattern, logging, error-handling, middleware, etc.) in plain Ruby. More articles coming soon, so stay tuned!

If you're tired of using complex SPA frameworks in JavaScript, I suggest you give Hotwire a try. It will let you build modern web applications that work like most single-page applications without incurring any complexity. And you get to program in Ruby.

If you are interested in learning more about Hotwire, check out my crash-course on Hotwire.

Here're a few articles I've written about Hotwire.

A Brief Introduction to Hotwire
Hotwire, which stands for HTML Over the Wire, provides a different way to build modern web applications without using too much JavaScript. This article provides a quick introduction to Hotwire and its component frameworks, such as Turbo Drive, Frames, and Streams.
Building a To-Do List Using Ruby on Rails, Hotwire, Stimulus and Tailwind
This post explains how to build a to-do list using the new Hotwire and Stimulus frameworks from Basecamp. We will start with a new Rails app from scratch and learn about these frameworks as we build our list.
Progressive Application Development with Hotwire
This is the day when you fall in love with Hotwire. We’re going to build a simple counter. But we’re not going to build it once and be done with it. Instead, we’ll build and progressively enhance it with all three frameworks in Hotwire: Turbo Drive, Turbo Frames, and Turbo Streams.

A common misconception is that you can only use Hotwire with Rails. Not true. You can use it on a static website or with any programming language as long as you follow certain conventions. This article shows you how.

You Don’t Need Rails to Start Using Hotwire
Although Hotwire is closely tied to Ruby on Rails, you might be surprised to know that you don’t really need Rails to learn, play, and experiment with Hotwire. In this article, I will show you how a simple static website can use Turbo Drive and Frames to make it more dynamic and responsive.

Finally, here're a few more articles on various features in Rails. There're a lot more articles in the archives, but these ones are the most popular and some of the all-time favourites on the blog. I think you'll find them useful and you'll learn something new.

Understanding the Rails Router: Why, What, and How
The router is the entry point of your Rails application. It acts as the gatekeeper for all incoming HTTP requests, inspecting and sending them to a controller action; even filtering and rejecting them if necessary. In this article, we’ll do a deep dive into the Rails Router to understand it better.
Polymorphic Associations in Rails: Why, What, and How
Polymorphic associations in Rails allow a single model to belong to multiple models. This article covers them in-depth. We’ll start with understanding the concept of polymorphism, learn what a polymorphic association is, why we need them, how they work, and how to use them in your Rails application.
Concerns in Rails: Everything You Need to Know
Concerns are an important concept in Rails that can be confusing to understand for those new to Rails as well as seasoned practitioners. This post explains why we need concerns, how they work, and how to use them to simplify your code.
The Definitive Guide to Rack for Ruby and Rails Developers
In this article, I will try to explain pretty much everything that you need to know about Rack as a Ruby and Rails developer. It covers everything from the basics to more advanced stuff such as middleware and writing your custom middleware.
Configure Classes Using the Configurable Concern in Rails
Rails provides a `Configurable` concern that lets you add configuration options on classes.
Metaprogramming in Ruby
Metaprogramming in Ruby enables you to produce elegant, clean, and beautiful programs as well as unreadable, complex code that’s not maintainable. This book will teach you the powerful metaprogramming concepts in Ruby, and how to use them judiciously.

That's a wrap. If you have any questions or feedback, please leave a comment below or send me an email. I reply to all the emails from fellow developers, and I look forward to hearing from you.