How to build a complete, real-world application from scratch with Ruby on Rails step by step.
A lot of Ruby code is "magic". We'll explain the magic and see how it works using the powerful tools Ruby gives us.
Accept subscription and one-time payments with Stripe in your Rails apps
Expert advice on keeping Rails apps organized and fast.
Cheap, easy hosting for Ruby and Rails apps.
Launch your product business way faster with our SaaS template.
A weekly podcast on web development and building products with Ruby, Rails, Javascript, and more.
A few of the Open Source projects we do at GoRails.
Build a Ruby on Rails app in 48 hours with us.
Help Junior developers get hired by sharing small projects to build their resume with paid work.
Find your next Ruby on Rails Job.
Ruby 3.4 now raises warnings anytime you mutate a string literal. Learn how to fix our code and use frozen string literals to improve performance.
We needed a feature to highlight lines in Markdown code blocks for the Rails guides. This is a fun Ruby challenge with many different solutions.
Calculating dates is helpful, but what if we took the black_friday gem a step further by adding sales?
Adding delivery methods for notifications with Noticed is pretty easy. Today we'll look at using Bluesky's API to deliver notifications as posts on our feed.
Rails engines often need a way of providing JavaScript for their views. We can do this using Importmaps regardless of what the application is using for assets.
Devise has a couple handy routing helpers to constrain routes for authenticated users. In this lesson, we'll learn how to do this from scratch by adding routing constraints Rails' built-in authentication generator
Captchas help prevent bots from spamming your Rails applications so today we're implementing Cloudflare's Turnstile captchas.
If you've ever had Rails fail to decrypt credentials, it might be because of a rogue newline. We ran into this and decided to submit a PR to fix this in Rails.
Rails 7.2 introduces the enqueue_after_transaction_commit config but this wouldn't take effect when upgrading Rails apps, so we fixed it by changing the load order.
Before actions typically just call a method without arguments, but what if we need something more? Watch this lesson to find out!
In this lesson, we'll start to build a catalog of time-saving coding commands to use in IRB. Today's methods will help us view available methods in the current context and easily access their source code, all from the command line.
Ruby's __FILE__ and __dir__ work slightly differently with symlinks that you might not realize. Let's check see how it works.
Customizing Devise feels daunting, but it's surprisingly easy. In this lesson, we'll customize Devise to track referrals using the Refer gem.
In this lesson, we will learn how to leverage built in IRB and Debug commands from Ruby to trace what happens when you run rails console from start to finish.
In this lesson, we will learn about the configuration of the new Rails console prompt, how the feature was built, and how we can apply our new knowledge to customize our own IRB console prompts.
The Revise Auth gem that I wrote didn't have a consistent redirect mechanism for after sign up or sign in, so this lesson we're going to refactor and write tests to improve this feature.
Rails 7.2 introduces the allow modern browsers feature but the app:update command wasn't creating the necessary files. In this lesson, we'll walk through writing a pull request to fix this in Rails!
In this lesson, we will learn how to not only change into a new context in IRB but then how to get back to the previous context by leveraging our workspaces stack in IRB.
In this lesson, we will look at how to clean up code that iterates over a collection twice to separate the elements out to only doing so once while achieving the same result by leveraging the partition method from Ruby's Enumerable module.
Did you know GitHub Actions supports inputs? You can accept inputs from the user or other actions to be used in your action.
Join 87,563+ developers who get early access to new tutorials, screencasts, articles, and more.
We care about the protection of your data. Read our Privacy Policy.