Tutorials




Production-Grade (ish) Rails deployment on Hetzner with Kamal
I've been toying around with Kamal for some time now, and I believe I have come up with a nice setup for a reasonably robust deployment. It includes two servers, one for the application and another for database and caching, a firewall to expose on...

How to reuse the same page in different Turbo Frame flows | Radan Skorić's personal site
Clicking the login link brings up a login form in a popup modal. You can also navigate to registration or forgot my password pages within the same modal. Imagine you have a new requirement: also support the login/registration pages as standalone p...



Expressive Class Hierarchies through Dynamically-Instantiated Support Objects | Fullstack Ruby
When you’re designing an abstract class for the purpose of subclassing—very common when looking at the framework/app divide—it’s tempting to want to throw a whole bunch of loosely-related functionality into that one parent class. But as we all kno...

Ruby 3.4, Range size Now Raises TypeError If The Range Is Not Iterable | Saeloun Blog
In Ruby, a Range is an object that represents a range of values with a defined beginning and end. It is a fundamental data structure used to express a sequence or span between two values, whether they are numeric, alphabetical, or even dates.We ha...

Testing anti-pattern: merged setup data - Code with Jason
In a single test file, there’s often overlap among the setup data needed for the tests in the file. For whatever reasons, perhaps in an effort to improve performance or avoid duplication, test writers often merge the setup code and bring it to the...