Save 36% for Black Friday! Save 36% on GoRails for Black Friday! Learn more →
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.
Learn how to build fast, modern web apps with HTML over the wire.
Setup your computer with Ruby on Rails and deploy to a production server.
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.
The Rails Authentication generator is getting new test helpers. We'll take a look at how to use them with integration tests and how to extend them to work with system tests too.
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
The Rails authentication generator is an awesome new addition with Rails 8 so let's explore how we can customize it to support user impersonation.
Customizing Devise feels daunting, but it's surprisingly easy. In this lesson, we'll customize Devise to track referrals using the Refer gem.
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.
Config options sometimes need to support dynamic values and not just simple booleans. In this lesson, we'll discover a config in Devise, explore how we can hack around it, and then make a Pull Request to improve this feature in Devise instead.
Rails 7.1's new generates_token_for method allows us to build password reset and Magic Link login tokens without storing details in the database. Tokens have expirations and can be one-time use so they can't be reused.
Rails 7.1 introduces many new features for authentication. In this lesson, we'll show you how to implement authentication from scratch using Rails 7.1's new features.
OAuth can be hard to understand and debug. Plus, this process is abstracted even further with OmniAuth in Rails. In this episode, we'll walk through t
Anyone can create, edit, or delete a blog post in our Rails app currently. In this lesson, we'll add authentication so only allowed users can do those actions.
This episode, we explore the internals of OmniAuth in order to fix a bug and refresh the OmniAuth AuthHash without reinventing the wheel
Hotwire's Turbo library intercepts forms automatically so Devise needs a few tweaks to work with it. Learn how to do that in this screencast!
Ever wanted to restrict user registrations to an account's work email or corporate email domains in your Rails app? It's a lot simpler than you might think.
Testing ActionCable authentication with Devise is pretty easy, especially when we build our own helpers to stub out Warden
Adding Devise test helpers allows you to quickly login a user for testing controllers in Rails
The HaveIBeenPwned Password API lets us enforce strong passwords and warn users their password has been in a data breach
Adding user avatars is pretty easy using Rails' ActiveStorage feature. We'll be using Devise in this example, but this applies to any user authentication system.
Learn how to build a React Native application to connect to your Rails API using OAuth for authentication