Awesome Rails
A curated list of awesome things related to Ruby on Rails 

Table of Contents
Resources
Official Resources
Back to top
External Resources
Books
Video courses
Video tutorials
Youtube channels
Other external resources
Back to top
Jobs
Tip: You can find list of remote job boards including Rails jobs on awesome-remote-job
Back to top
Back to top
Articles
from dev.to:
- More than “Hello World” in Docker: Build Rails + Sidekiq web apps in Docker
- Design Patterns with Ruby on Rails part 1: Introduction and Policy Object - Part 2
- The Progressive Rails App
- Modern Rails flash messages (part 1): ViewComponent, Stimulus & Tailwind CSS - Part 2
- Building a Rails App With Multiple Subdomains
- Reactive Rails applications with StimulusReflex
- 1 Backend, 5 Frontends - Todo List with Rails, React, Angular, Vue, Svelte, and jQuery
- Create a Video Party App With Rails Part 1: Building the Backend - Part 2
- The Rails Model Introduction I Wish I Had
- How to create a gem in Ruby on Rails? -From Scratch-
- Multiple Foreign Keys for the Same Relationship in Rails 6
- QR Code Reader on Rails
- Magic Links with Ruby On Rails and Devise
- I created the same application with Rails and no JavaScript
- Instantly speed up your Rails application by self-hosting your fonts
- Reactive Map with Rails, Stimulus Reflex and Mapbox
- A Future for Rails: StimulusReflex
- Introduction to Ruby on Rails Patterns and Anti-patterns Part 1 - Part 2
- Rails Concerns: To Concern Or Not To Concern
- Building an Event Sourcing System in Rails, Part 1: What is Event Sourcing? - Part 2
- Real Time Notification System with Sidekiq, Redis and Devise in Rails 6
- Deploying Your Rails 6 App
- What’s Cooking in Rails 7?
- Using Hotwire Turbo in Rails with legacy JavaScript
- From Rails scaffold listing to Hotwire infinite scroll
- Building a Component Library in Rails With Storybook
- How to Speed Up Load Times In A Rails App - What I Wish I Knew Four Months Ago
- Endless Scroll / Infinite Loading with Turbo Streams & Stimulus
- Ruby/Rails Machine Setup Guide
-How many Heroku dynos do you need, and which size—An opinionated guide
-Rails Environment Variables Using Credentials
-Email Subscription Workflow - Ruby on Rails
-Mastering Low Level Caching in Rails
from shopify.engineering:
from blog.planetargon.com:
from blog.arkency.com:
from sitepoint.com:
from pganalyze.com:
from semaphoreci.com:
from evilmartians.com:
from digitalocean.com:
from cloud66.com:
from not yet classified sources:
Back to top
Open Source Rails Apps
Note: Rails versions of these apps are valid as the date of latest commit. They are defined in their Gemfile and/or Gemfile.lock and they might be outdated. If you find it outdated, don’t forget to notfiy us by opening a pull request.
Gems
[:red_circle:] : RubyGems link of gems
Direct dependencies of the “rails” gem:
Other gems that can be used with Rails
- ace-rails-ap - A gem to integrate ajax.org cloud9 editor into Rails asset pipeline. :red_circle:
- action_policy - A tool to handle authorization. :red_circle:
- actionview-svelte-handler - An Action View template handler to seamlessly integrate Svelte views. :red_circle:
- active_decorator - A gem to keep views & helpers object-oriented. :red_circle:
- active_enum - A gem to provide enum classes :red_circle:
- activeadmin - A gem to provide admin panel. :red_circle:
- activerecord-analyze - A gem to add EXPLAIN ANALYZE to Rails Active Record query objects. :red_circle:
- activerecord-import - A gem to handle bulk data insertion using ActiveRecord. :red_circle:
- activerecord-pg_enum - A gem to integrate PostgreSQL’s enumerated types with the Rails enum feature. :red_circle:
- activerecord-postgis-adapter - ActiveRecord connection adapter for PostGIS. :red_circle:
- activerecord-postgres_enum - A gem to adds migration and schema.rb support to PostgreSQL enum data types. :red_circle:
- activerecord-sqlserver-adapter - ActiveRecord connection adapter for the SQL Server. :red_circle:
- activerecord-typedstore - A gem to implement
ActiveRecord::Store
with type definition. :red_circle:
- activity_notification - A gem to integrate user activity notification. :red_circle:
- aggregate_root - A gem to handle event sourcing. :red_circle:
- ahoy_email - A tool to provide mail analytics. :red_circle:
- alba - A JSON serializer for Ruby, JRuby, and TruffleRuby. :red_circle:
- algoliasearch-rails - A gem to integrate Algolia search. :red_circle:
- annotate - A gem to annotate rails classes with schema & routes info. :red_circle:
- anycable-rails - A gem to handle websocket server. :red_circle:
- apipie-rails - A REST API documentation tool. :red_circle:
- auther - A gem to provide simple, form-based authentication. :red_circle:
- autoprefixer-rails - A gem to add vendor prefixes to stylesheets. :red_circle:
- avo - Configuration-based, no-maintenance, extendable Ruby on Rails admin panel. rubygems
- bemi-rails - A robust data change tracking and audit trail for Rails. :red_circle:
- better_errors - A tool to provide better error page. :red_circle:
- brakeman - A gem to scan code against security vulnerabilities. :red_circle:
- breadcrumbs_on_rails - A gem to create & manage breadcrumbs-style navigation. :red_circle:
- bulma-rails - A wrapper for Bulma, a CSS framework based on flexbox. :red_circle:
- cancancan - A gem to handle authorization. :red_circle:
- carrierwave - A gem to handle file uploads. :red_circle:
- caxlsx_rails - A gem to generate entity-relationship diagram. :red_circle:
- counter_culture - A gem to provide counter caches. :red_circle:
- devise - A gem to provide authentication. :red_circle:
- doorkeeper - A gem to introduce OAuth2 provider functionality. :red_circle:
- draper - A gem to add presentation logic. :red_circle:
- factory_bot_rails - A fixture replacement for testing in Rails :red_circle:
- filestack-rails - A gem to integrate Filestack. :red_circle:
- formtastic - A Rails form builder gem with semantically rich and accessible markup. :red_circle:
- friendly_id - A gem to deal with slugs & permalinks. :red_circle:
- frozen_record - A gem to provide ActiveRecord-like interface to query static YAML files. :red_circle:
- geokit-rails - A gem to integrate Geokit in Rails apps. :red_circle:
- good_job - A gem to provide Postgres-based ActiveJob backend. :red_circle:
- gretel - A tool to generate breadcrumbs. :red_circle:
- groupdate - A gem to manage temporal data. :red_circle:
- hotwire-rails - A gem to integrate Hotwire in Rails apps. :red_circle:
- image_optim_rails - A gem to handle image optimization. :red_circle:
- js-routes - A tool to generate all Rails routes as JavaScript helpers. :red_circle:
- kaminari - A gem to provide pagination. :red_circle:
- kt-paperclip - A gem to handle file uploads. :red_circle:
- lockbox - A gem to deal with encryption. :red_circle:
- lograge - A gem to customize logger in Rails apps. :red_circle:
- mailkick - A tool to handle mail unsubscriptions. :red_circle:
- marginalia - A gem to attach comments to ActiveRecord’s SQL queries. :red_circle:
- metka - A gem to manage tags using Postgresql array columns. :red_circle:
- money-rails - A gem to integrate Money gem in Rails apps. :red_circle:
- paloma - A gem to manage page-specific JavaScript in Rails apps. :red_circle:
- passive_columns - A gem that extends Active Record to retrieve specific columns from DB on demand. :red_circle:
- pgcli-rails - A replacement of
rails:dbconsole
command to manage Postgresql. :red_circle:
- premailer-rails - A gem to handle email styling. :red_circle:
- prerender_rails - A gem to prerender JavaScript-rendered pages. :red_circle:
- rabarber - A gem to handle role-based authorization. :red_circle:
- rails-erd - A gem to generate entity-relationship diagram. :red_circle:
- rails-mermaid_erd - A gem to interactively generate entity-relationship diagram in image or Markdown format. :red_circle:
- rails-settings-cached - A gem to manage global settings as key-value pairs. :red_circle:
- rails_admin - A gem to create & manage admin panel for Rails app. :red_circle:
- rails_event_store - A gem to implement event store in Rails :red_circle:
- rails_semantic_logger - A gem to provide alternative logging approach for Rails app. :red_circle:
- ranked-model - A gem to handle sorting for rows. :red_circle:
- ransack - A gem to provide search functionality. :red_circle:
- react-rails - A gem to integrate React.js with Rails app. :red_circle:
- react_on_rails - A gem to integrate React.js with Rails app with SSR. :red_circle:
- redisWebManager - Web interface that allows you to manage easily your Redis instance. :red_circle:
- reform-rails - A gem to wrap Reform gem, a form validation tool, with Rails app. :red_circle:
- rgeo-activerecord - A gem to provide common tools used by RGeo-based spatial adapters. :red_circle:
- rodauth-rails - A gem to wrap Rodauth, an authentication handler, for Rails apps. :red_circle:
- rollup - A gem to handle time-series data in Rails :red_circle:
- route_translator - A tool to handle route translation. :red_circle:
- rspec-rails - A testing framework. :red_circle:
- rubocop-rails - A code style checking tool. :red_circle:
- scenic - A gem to manage database views. :red_circle:
- searchkick - A gem to provide search functionality. :red_circle:
- select2-rails - A gem to integrate Select2 library in Rails apps. :red_circle:
- sequel-activerecord_connection - A gem to allow Sequel to reuse an ActiveRecord connection. :red_circle:
- shakapacker - A gem to use webpack to manage app-like JavaScript modules in Rails. :red_circle:
- simple_form - A gem to handle forms. :red_circle:
- solid_queue - A gem to Database-backed Active Job backend :red_circle:
- solidus - A fork of Spree gem, an open source e-commerce platform. :red_circle:
- sorbet-rails - A gem to integrate Sorbet gem in Rails apps. :red_circle:
- spree - An open source e-commerce platform. :red_circle:
- spring - A gem to preload Rails app. :red_circle:
- sprockets - A gem to compile & serve web assets. :red_circle:
- stimulus-rails - A gem to integrate Stimulus.js in Rails apps. :red_circle:
- tinymce-rails - A gem to integrate Tinymce in Rails apps. :red_circle:
- transloadit-rails - A gem to integrate Transloadit’s file uploading and encoding service. :red_circle:
- trove - A gem to handle machine learning models deployment. :red_circle:
- turbo-rails - A gem to integrate Turbo.js in Rails apps. :red_circle:
- view_component - A gem to introduce view components. :red_circle:
- webpacker - A gem to bundle web assets using Webpack. :red_circle:
- zeitwerk - A gem to handle thread-safe code loading. :red_circle:
Back to top
Starters/Boilerplates
- default_rails_template - Default template for generating new Rails applications.
- docker-Rails-Template - A freshly updated version of “rails new”, preconfigured to be run with Docker.
- docker-rails
- jumpstart(excid3) - Easily jumpstart a new Rails application with a bunch of great features by default.
- jumpstart(thomasvanholder) - Template for set-up of Rails 6, Tailwind 2.0 and Devise.
- kickoff_tailwind - A rapid Rails 6 application template for personal use bundled with Tailwind CSS.
- rails-devise-graphql - A Rails 6 boilerplate to create your next Saas product. Preloaded with graphQL, devise, JWT, CanCanCan, RailsAdmin, Rubocop, Rspec, and more.
- rails-template(mattbrictson) - Application template for Rails 6 projects; preloaded with best practices for TDD, security, deployment, and developer productivity.
- rails-template(TristanToye) - MVP Ready Rails - A Template for Your Next Rails App
- rails-template(ackama) - Application template for Rails 6.1 projects; preloaded with best practices for TDD, security, deployment, and developer productivity.
- rails-template(astrocket) - Template for Rails 6.0 + Kubernetes + Webpacker + Stimulus + TailwindCSS + Let’s Encrypt.
- rails-template(dao42) - A best & newest & fastest rails 6.x template for senior rails developer.
- rails-templates(lewagon) - Jump start your Rails development with Le Wagon best practices.
- rails-templates(nimblehq) - Our optimized Rails templates used in our projects.
- rails-vue-template - An example of how to use VueJS as a single page application inside Rails using Webpacker.
- rails_new - A thoughtfully designed template for building modern Rails apps. Get started in minutes instead of hours.
- suspenders - A Rails template with our standard defaults, ready to deploy to Heroku.
- vuejs-rails-starterkit - Vue.js + Rails Starting Kit GitHub Template to develop Hybrid Mobile Application.
- rails_api_base - Rails 6 boilerplate project for JSON RESTful APIs.
- rails_hotwire_base - Rails 6 boilerplate project with Hotwire for full-stack applications with a modern SPA-like experience.
- Nanobox - A micro-PaaS (μPaaS) for creating consistent, isolated, development environments deployable anywhere
Back to top
Generators
Generator |
Ready to run |
Complex Apps |
Sets git |
Heroku config |
Rails Composer |
yes, but Stripe needs to be configured |
Example apps reaching a SaaS with Stripe. |
yes |
yes |
Back to top
- Bencher - A suite of continuous benchmarking tools designed to catch performance regressions in CI.
- rails-dashboard - A dev-tool to improve your rails log.
- Optic - Optic automatically documents and tests your APIs.
- Liam ERD - Generate Beautiful ER-Diagrams from your schema.rb. Using ruby/prism WASM with Node.js.
Back to top