A curated list of awesome things related to Ruby on Rails
Table of Contents
Use the "Table on Contents" menu on the top-left corner to explore the list.
- Rails Official Website
- Rails Official Guide
- Rails Official Guide (Edge Guide)
- Rails API Documentation
- Rails Source Code
- Rails Official Blog
- Ruby on Rails Tutorial Book
- Agile Web Development with Rails 6
- Docker for Rails Developers
- Rails 5 Test Prescriptions
- Rails, Angular, Postgres, and Bootstrap, Second Edition
- Growing Rails Applications in Practice
- Crafting Rails 4 Applications
- The Rails 6 Way
Other external resources
- Stack Overflow
- railsjobs on Reddit
- rails jobs on indeed.com
- rails jobs on glassdoor.com
- rails jobs on gorails.com
- rails jobs on remoteok.io
- rails jobs on weworkremotely.com
- reverse job board for rails devs - railsdevs.com
Tip: You can find list of remote job boards including Rails jobs on awesome-remote-job
- 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
- 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?
- 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
- How to Write Fast Code in Ruby on Rails
- How to Introduce Composite Primary Keys in Rails
- Enforcing Modularity in Rails Apps with Packwerk
- 8 Useful Ruby on Rails Gems We Couldn't Live Without
- Ruby on Rails Code Audits: 8 Steps to Review Your App
- Rails 6.1 is Out! How to Prepare Your App Now
- When Should You Upgrade Your Rails Application?
- Helpful Resources for Upgrading Your Rails App Version
- Upgrading Rails: Interview with Eileen Uchitelle
- nil?, empty?, blank? in Ruby on Rails - what's the difference actually?
- How well Rails developers actually test their apps
- Rails multitenancy story in 11 snippets of code
- Painless Rails upgrades
- Comparison of approaches to multitenancy in Rails apps
- Managing Rails Event Store Subscriptions — How To
- Rails connections, pools and handlers
- How to balance the public APIs of an open-source library — practical examples from RailsEventStore
- Rack apps mounted in Rails — how to protect access to them?
- File Upload in Rails with PaperClip
- Build a Blog with Ruby on Rails - Part 2
- Uploading Files With Rails and ActionCable
- Create an Online Streaming Radio With Rails and Icecast
- Integrating Social Login in a Ruby on Rails Application
- Asynchronous Chat With Rails and ActionCable
- 10 Ruby on Rails Best Practices
- Building APIs with Ruby on Rails and GraphQL
- Understanding the Model-View-Controller (MVC) Architecture in Rails
- Beyond Rails Abstractions: A Dive into Database Internals
- Search and Autocomplete in Rails Apps
- Start Your SEO Right with Sitemaps on Rails
- Handle Password and Email Changes in Your Rails API
- Master Many-to-Many Associations with ActiveRecord
- Common Rails Security Pitfalls and Their Solutions
- Efficient GraphQL queries in Ruby on Rails & Postgres
- Similarity in Postgres and Rails using Trigrams
- Effectively Using Materialized Views in Ruby on Rails
- Full Text Search in Milliseconds with Rails and PostgreSQL
- Advanced Active Record: Using Subqueries in Rails
- PostGIS vs. Geocoder in Rails
- Creating Custom Postgres Data Types in Rails
- Integration Testing Ruby on Rails with Minitest and Capybara
- Mocking in Ruby with Minitest
- How to Test Rails Models with RSpec
- Dockerizing a Ruby on Rails Application
- Dockerizing Ruby and Rails development
- How to GraphQL with Ruby, Rails, Active Record, and no N+1
- Keep up with the Tines: Rails frontend revamp
- Pulling the trigger: How to update counter caches in your Rails app without Active Record callbacks
- GraphQL on Rails: On the way to perfection
- Danger on Rails: make robots do some code review for you!
- GraphQL on Rails: From zero to the first query
- A fixture-based approach to interface testing in Rails
- Making Hotwire and Devise play nicely
- Taking Rails to the next level with Hotwire
- Hotwire, ViewComponents and TailwindCSS: The Ultimate Rails Stack
- Adding Super Fast Frontend Search in Rails with Lunr
from not yet classified sources:
- Protecting your users data from Rails application using cryptography
- The 3 Tenets of Service Objects in Ruby on Rails
- Famous Web Apps Built with Ruby on Rails
- Building a JSON API with Rails 5
- Five Practices for Robust Ruby on Rails Applications
- Crafting APIs With Rails
- Working with the SQL ‘time’ type in Ruby on Rails
- Upgrading Rails apps with dual boot
- What Are Rails Parameters & How to Use Them Correctly
- How to Remove Single Table Inheritance from Your Rails Monolith
- Build a Rails application with VueJS using JSX
- Fetching millions of rows from PostgreSQL with Rails
- Implementing Multi-Table Full Text Search with Postgres in Rails
- Ruby on Rails ActiveRecord PostgreSQL Data Integrity and Validations
- Programming Community Curated Resources For Learning Ruby on Rails
- Choosing ruby on rails for your next web development project (business guide)
- Dockerizing a Rails application
- How to painlessly set up your Ruby on Rails dev environment with Docker
- How I used Docker with Rails
- Rails 6 Features: What's New and Why It Matters
- Ruby on Rails configuration tutorials
- Containerizing Ruby on Rails Applications
- Behind The Scenes: Rails UJS
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.
- activeWorkflow - An intelligent process and workflow automation platform based on software agents (using Rails 5.2).
- adopt-a-hydrant - A civic infrastructure detection app (using Rails 4.2).
- airCasting - A platform for recording, mapping, and sharing health and environmental data using your smartphone (using Rails 5.2). - 🌍
- alaveteli - A platform for making public freedom of information requests - using Rails 5.1 - 🌍
- alonetone - A music hosting, management & distribution app (using Rails 6.0). - 🌍
- api.rss - A RSS feed conversion (to API) app (using Rails 5.2).
- asakusaSatellite - A realtime chat application for developers (using Rails 6.0). - 🌍
- askaway - Question & answer app specialized in politics (using Rails 4.1).
- autolab - A course management app (using Rails 4.2). - 🌍
- beatstream - A music streaming app - using Rails 3.2
- bike_index - A bike registry tracking app (using Rails 4.2). - 🌍
- blackCandy - A music streaming app (using Rails 6.0).
- brimir - An email helpdesk app (using Rails 5.2). (archived).
- calagator - A community calendaring app (using Rails 4.2).
- campo - A forum app (using Rails 4.2). - 🌍
- canvas-lms - A learning management app (using Rails 5.2).
- catarse - A crowdfunding platform for creative projects (using Rails 4.2). - 🌍
- chatwoot - A simple and elegant live chat software (using Rails 6.0).
- ciao - A URL status checking app (using Rails 6.0).
- coRM - A customer relationship management app - using Rails 3.2 - 🌍
- coderwall (legacy) - A social network app for software engineers - using Rails 3.2
- coderwall (next) - A social network app for software engineers - using Rails 5.0
- codetriage - An open source project finder app (using Rails 6.0). - 🌍
- commudle - A community management app (using Rails 5.2).
- contribulator - An open source project finder app - using Rails 5.1
- coursemology2 - Learning platform app (using Rails 5.2).
- covoiturage-libre - A carpooling app - using Rails 5.0 (archived).
- crabgrass-core - A collaboration platform for activist groups (using Rails 4.2).
- crowdAI - An app for data science challenges (using Rails 5.2). - 🌍
- crowdtiltOpen - A crowdfunding platform - using Rails 3.2
- cw-ovp - video packaging to *.m3u8 for HLS (HTTP Live Streaming) with FFMPEG on website (using Rails 6.0).
- danbooru - A taggable image board app (using Rails 6.0).
- dcaf_case_management - A case management app (using Rails 5.2).
- dgidb - A drug gene interaction platform - using Rails 5.1
- diaper - An inventory management app for diaper banks (using Rails 6.0). - 🌍
- diaspora - A social networking app - using Rails 5.1 - 🌍
- discourse - A platform for community discussion (using Rails 6.0). - 🌍
- ekylibre - A farm management app (using Rails 4.2).
- postal - A mail delivery platform (using Rails 5.2).
- encrypt.to - A messaging app with encryption support (using Rails 4.2).
- eol - An encyclopedia app - using Rails 3.2 - 🌍
- expertiza - A learning material sharing app (using Rails 4.2).
- FAE - A modern CMS deveveloped by FINE (using Rails 5.2)
- fairmondo - A marketplace app (using Rails 4.2). - 🌍
- fat-free-crm - An open source, Ruby on Rails customer relationship management platform (CRM) (using Rails 5.2). - 🌍
- feedbin - A RSS reader app (using Rails 6.0). - 🌍
- follow-all - A Twitter account management app (using Rails 4.2). (archived).
- forem - Social platform app specialized for web development (using Rails 5.2). - 🌍
- fromthepage - A wiki-like app for crowdsourcing transcription of handwritten documents (using Rails 4.1). - 🌍
- gitlabhq - A code collaboration app (using Rails 6.0).
- graff_mags - A graffiti magazine sharing app (using Rails 4.1). - 🌍
- growstuff - A data management app for food gardeners (using Rails 5.2). - 🌍
- hackershare - Social bookmarks website for hackers (using Rails 6.0). - 🌍
- hashrobot - A social media management app (using Rails 4.2). - 🌍
- helpy - A customer support app (using Rails 4.2). - 🌍
- hitobito - An event organization app (using Rails 4.2). - 🌍
- hours - A time tracking app (using Rails 4.2). - 🌍
- inaturalist - A community app for nature and related stuff (using Rails 4.2). - 🌍
- intercityup.com - A control panel app for app deployment (using Rails 4.1).
- kanban - A Trello clone (using Rails 4.2).
- kitsu-tools - An anime discovery platform (using Rails 4.1).
- lavish - A color scheme generator (using Rails 4.2).
- lifeToRemind - A career planning app (using Rails 5.2).
- lobsters - A link aggregation app (using Rails 5.2). - 🌍
- loomio - A collaborative decision-making app (using Rails 5.2). - 🌍
- mastodon - A microblogging app (using Rails 5.2). - 🌍
- obtvse2 - A blogging app (using Rails 4.0).
- onebody - A social networking app for churches - using Rails 5.1
- openFarm - A database for information about farming and gardening (using Rails 5.2). -
- opencongress - A website for getting information about US Congress - using Rails 3.0 (archived).
- openproject - A project management app (using Rails 6.0). - 🌍
- openstreetmap-website - A map viewing app (using Rails 6.0). - 🌍
- opensourcefriday - A project contribution tracking app (using Rails 6.0). - 🌍
- otwarchive - A social networking app for fans - using Rails 5.1 - 🌍
- passwordPusher - A password delivery app (using Rails 4.2). - 🌍
- peatio - A crypto currency exchange app (using Rails 4.0).
- planningalerts-app - A planned applications tracking app (using Rails 5.2). - 🌍
- popHealth - A population health reporting app (using Rails 4.1).
- publify - A blogging app (using Rails 5.2).
- quant - A personal health tracker (using Rails 4.1).
- racing_on_rails - A bike racing organization app (using Rails 5.2).
- rapidFTR - An information provider app for aid workers (using Rails 4.0).
- redmine - A project management app (using Rails 5.2). - 🌍
- rentmybikes-rails - A marketplace app - (using Rails 4.0).
- reservations - An inventory management app (using Rails 6.0). - 🌍
- rletters - A frontend for database of journal articles for researchers (using Rails 6.0). - 🌍
- rubygems.org - A gem hosting platform (using Rails 6.0). - 🌍
- sanataro - An account tracker (using Rails 4.2).
- scholarsphere - A digital assets management app - using Rails 5.1
- selfstarter - A crowdfunding app (using Rails 4.0).
- sharetribe - A peer-to-peer marketplace platform (using Rails 5.2). - 🌍
- socify - A social networking platform - using Rails 5.0
- splits-io - A speedrun data store and analysis engine. (using Rails 6.0). - 🌍
- spokenvote - A social voting app (using Rails 4.2).
- stackneveroverflow - A question asking & answering platform - using Rails 5.0
- teambox - A collaboration app - using Rails 3.0 - 🌍 (archived).
- theodinproject - A teaching & learning platform (using Rails 5.2). - 🌍
- tracks - A goal tracking app (using Rails 5.2). - 🌍
- trado - An e-commerce platform (using Rails 4.2).
- vglist - A video game library tracking web app (using Rails 6.0). - 🌍
- websiteOne - A project tracking app (using Rails 5.2). - 🌍
- whitehall - A content management app used by UK government - using Rails 5.1
[🔴] : RubyGems link of gems
Direct dependencies of the "rails" gem:
- actioncable - A gem to integrate websocket with a Rails app 🔴 - Action Cable Overview
- actionmailbox - A gem to handle incoming emails within a Rails app 🔴 - Action Mailbox Basics
- actionmailer - A gem to compose, deliver & test emails within a Rails app 🔴 - Action Mailer Basics
- actionpack - A gem to manage requests & responses within a Rails app 🔴
- actiontext - A gem to integrate rich text editor into a Rails app 🔴 - Action Text Overview
- actionview - A gem to handle view templates within a Rails app 🔴 - Action View Overview
- activejob - A gem to handle background jobs within a Rails app 🔴 - Active Job Basics
- activemodel - A gem to define a set of interfaces to use in model classes within a Rails app 🔴 - Active Model Basics
- activerecord - A gem to connect model classes with relational databases within a Rails app 🔴 - Active Record Basics
- activestorage - A gem to handle file uploads to cloud storage providers within a Rails app 🔴 - Active Storage Overview
- activesupport - A gem to provide some extensions to support a Rails app 🔴 - Active Support Core Extensions
- railties - A gem to handle gems & engines used in a Rails app to work together 🔴
Other gems that can be used with Rails
- ace-rails-ap - A gem to integrate ajax.org cloud9 editor into Rails asset pipeline. 🔴
- action_policy - A tool to handle authorization. 🔴
- active_decorator - A gem to keep views & helpers object-oriented. 🔴
- active_enum - A gem to provide enum classes 🔴
- activeadmin - A gem to provide admin panel. 🔴
- activerecord-analyze - A gem to add EXPLAIN ANALYZE to Rails Active Record query objects. 🔴
- activerecord-import - A gem to handle bulk data insertion using ActiveRecord. 🔴
- activerecord-pg_enum - A gem to integrate PostgreSQL's enumerated types with the Rails enum feature. 🔴
- activerecord-postgis-adapter - ActiveRecord connection adapter for PostGIS. 🔴
- activerecord-postgres_enum - A gem to adds migration and schema.rb support to PostgreSQL enum data types. 🔴
- activerecord-sqlserver-adapter - ActiveRecord connection adapter for the SQL Server. 🔴
- activerecord-typedstore - A gem to implement
ActiveRecord::Storewith type definition. 🔴
- activity_notification - A gem to integrate user activity notification. 🔴
- aggregate_root - A gem to handle event sourcing. 🔴
- ahoy_email - A tool to provide mail analytics. 🔴
- algoliasearch-rails - A gem to integrate Algolia search. 🔴
- annotate - A gem to annotate rails classes with schema & routes info. 🔴
- anycable-rails - A gem to handle websocket server. 🔴
- apipie-rails - A REST API documentation tool. 🔴
- auther - A gem to provide simple, form-based authentication. 🔴
- autoprefixer-rails - A gem to add vendor prefixes to stylesheets. 🔴
- avo - Configuration-based, no-maintenance, extendable Ruby on Rails admin panel. rubygems
- better_errors - A tool to provide better error page. 🔴
- brakeman - A gem to scan code against security vulnerabilities. 🔴
- breadcrumbs_on_rails - A gem to create & manage breadcrumbs-style navigation. 🔴
- bulma-rails - A wrapper for Bulma, a CSS framework based on flexbox. 🔴
- cancancan - A gem to handle authorization. 🔴
- carrierwave - A gem to handle file uploads. 🔴
- caxlsx_rails - A gem to generate entity-relationship diagram. 🔴
- counter_culture - A gem to provide counter caches. 🔴
- devise - A gem to provide authentication. 🔴
- doorkeeper - A gem to introduce OAuth2 provider functionality. 🔴
- draper - A gem to add presentation logic. 🔴
- factory_bot_rails - A fixture replacement for testing in Rails 🔴
- filestack-rails - A gem to integrate Filestack. 🔴
- formtastic - A Rails form builder gem with semantically rich and accessible markup. 🔴
- friendly_id - A gem to deal with slugs & permalinks. 🔴
- frozen_record - A gem to provide ActiveRecord-like interface to query static YAML files. 🔴
- geokit-rails - A gem to integrate Geokit in Rails apps. 🔴
- good_job - A gem to provide Postgres-based ActiveJob backend. 🔴
- gretel - A tool to generate breadcrumbs. 🔴
- groupdate - A gem to manage temporal data. 🔴
- hotwire-rails - A gem to integrate Hotwire in Rails apps. 🔴
- image_optim_rails - A gem to handle image optimization. 🔴
- kaminari - A gem to provide pagination. 🔴
- kt-paperclip - A gem to handle file uploads. 🔴
- lockbox - A gem to deal with encryption. 🔴
- lograge - A gem to customize logger in Rails apps. 🔴
- mailkick - A tool to handle mail unsubscriptions. 🔴
- marginalia - A gem to attach comments to ActiveRecord's SQL queries. 🔴
- metka - A gem to manage tags using Postgresql array columns. 🔴
- money-rails - A gem to integrate Money gem in Rails apps. 🔴
- pgcli-rails - A replacement of
rails:dbconsolecommand to manage Postgresql. 🔴
- premailer-rails - A gem to handle email styling. 🔴
- rails-erd - A gem to generate entity-relationship diagram. 🔴
- rails-settings-cached - A gem to manage global settings as key-value pairs. 🔴
- rails_admin - A gem to create & manage admin panel for Rails app. 🔴
- rails_event_store - A gem to implement event store in Rails 🔴
- rails_semantic_logger - A gem to provide alternative logging approach for Rails app. 🔴
- ranked-model - A gem to handle sorting for rows. 🔴
- ransack - A gem to provide search functionality. 🔴
- react-rails - A gem to integrate React.js with Rails app. 🔴
- redisWebManager - Web interface that allows you to manage easily your Redis instance. 🔴
- reform-rails - A gem to wrap Reform gem, a form validation tool, with Rails app. 🔴
- rgeo-activerecord - A gem to provide common tools used by RGeo-based spatial adapters. 🔴
- rodauth-rails - A gem to wrap Rodauth, an authentication handler, for Rails apps. 🔴
- rollup - A gem to handle time-series data in Rails 🔴
- route_translator - A tool to handle route translation. 🔴
- rspec-rails - A testing framework. 🔴
- rubocop-rails - A code style checking tool. 🔴
- scenic - A gem to manage database views. 🔴
- searchkick - A gem to provide search functionality. 🔴
- select2-rails - A gem to integrate Select2 library in Rails apps. 🔴
- sequel-activerecord_connection - A gem to allow Sequel to reuse an ActiveRecord connection. 🔴
- simple_form - A gem to handle forms. 🔴
- solidus - A fork of Spree gem, an open source e-commerce platform. 🔴
- sorbet-rails - A gem to integrate Sorbet gem in Rails apps. 🔴
- spree - An open source e-commerce platform. 🔴
- spring - A gem to preload Rails app. 🔴
- sprockets - A gem to compile & serve web assets. 🔴
- stimulus-rails - A gem to integrate Stimulus.js in Rails apps. 🔴
- tinymce-rails - A gem to integrate Tinymce in Rails apps. 🔴
- transloadit-rails - A gem to integrate Transloadit's file uploading and encoding service. 🔴
- trove - A gem to handle machine learning models deployment. 🔴
- turbo-rails - A gem to integrate Turbo.js in Rails apps. 🔴
- view_component - A gem to introduce view components. 🔴
- webpacker - A gem to bundle web assets using Webpack. 🔴
- zeitwerk - A gem to handle thread-safe code loading. 🔴
- 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.
- 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.
Other Rails Tools
- Nanobox - A micro-PaaS (μPaaS) for creating consistent, isolated, development environments deployable anywhere 🌍.
|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|
|Hix on Rails||yes||Monitoring, Redis Sentinel, Sidekiq.||yes||no|
- rails-dashboard - A dev-tool to improve your rails log.
- Optic - Optic automatically documents and tests your APIs.
Contribute to this list: https://github.com/gramantin/awesome-rails