Courses & TutorialsProgramming
Awesome Rails – Massive Collection of Resources
A curated list of awesome things related to Ruby on Rails
Table of Contents
Resources
Official Resources
- Rails Official Website
- Rails Official Guide (Edge Guide)
- Rails API Documentation
- Rails Source Code
- Rails Official Blog
External Resources
- The Odin Project
- Ruby on Rails Tutorial Book
- Learn Ruby on Rails (thoughtbot)
- Rails for Zombies
- RailsCasts
- GoRails
- Drifting Ruby
- Ruby on Windows Guides
- Ruby on Rails Online Courses at Classpert
Jobs
Tip: You can find list of remote job boards including Rails jobs on awesome-remote-job
Community
Articles
- Protecting your users data from Rails application using cryptography
- Ruby on Rails Code Audits: 8 Steps to Review Your App
- nil?, empty?, blank? in Ruby on Rails – what’s the difference actually?
- The 3 Tenets of Service Objects in Ruby on Rails
- Famous Web Apps Built with Ruby on Rails
- Connecting to Snowflake with Ruby on Rails
- Building a JSON API with Rails 5
- Building APIs with Ruby on Rails and GraphQL
- Five Practices for Robust Ruby on Rails Applications
- 8 Useful Ruby on Rails Gems We Couldn’t Live Without
- File Upload in Rails with PaperClip
- Integration Testing Ruby on Rails with Minitest and Capybara
- Mocking in Ruby with Minitest
- Build a RESTful JSON API With Rails 5
- Crafting APIs With Rails
- 10 Ruby on Rails Best Practices
- Build a Blog with Ruby on 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
- How To Add Stimulus to a Ruby on Rails Application
- How to Write Fast Code in Ruby on Rails
- Efficient GraphQL queries in Ruby on Rails & Postgres
- 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 Ruby and Rails development
- Dockerizing a Rails application
- How to painlessly set up your Ruby on Rails dev environment with Docker
- How I used Docker with Rails
- More than “Hello World” in Docker: Build Rails + Sidekiq web apps in Docker
- Rails 6 Features: What’s New and Why It Matters
- Ruby on Rails configuration tutorials
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 – 🌍
- 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
- calcentral – An email, calendars, shared documents and class collaboration spaces management 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
- dev.to – Social platform app specialized for web development – using Rails 5.2 – 🌍
- dgi-db – 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
- fairmondo – A marketplace app – using Rails 4.2 – 🌍
- feedbin – A RSS reader app – using Rails 6.0 – 🌍
- feedi – A RSS feed conversion (to API) app – using Rails 5.2
- follow-all – A Twitter account management app – using Rails 4.2 – archived
- 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 – 🌍
- ossfriday – 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
- videoGameList – 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
Gems
- rails – A full-stack web development framework – rubygems – source code
Direct dependencies of the “rails” gem:
- actioncable – A gem to integrate websocket with a Rails app – rubygems – source code – Action Cable Overview
- actionmailbox – A gem to handle incoming emails within a Rails app – rubygems – source code – Action Mailbox Basics
- actionmailer – A gem to compose, deliver & test emails within a Rails app – rubygems – source code – Action Mailer Basics
- actionpack – A gem to manage requests & responses within a Rails app – rubygems – source code
- actiontext – A gem to integrate rich text editor into a Rails app – rubygems – source code – Action Text Overview
- actionview – A gem to handle view templates within a Rails app – rubygems – source code – Action View Overview
- activejob – A gem to handle background jobs within a Rails app – rubygems – source code – Active Job Basics
- activemodel – A gem to define a set of interfaces to use in model classes within a Rails app – rubygems – source code – Active Model Basics
- activerecord – A gem to connect model classes with relational databases within a Rails app – rubygems – source code – Active Record Basics
- activestorage – A gem to handle file uploads to cloud storage providers within a Rails app – rubygems – source code – Active Storage Overview
- activesupport – A gem to provide some extensions to support a Rails app – rubygems – source code – Active Support Core Extensions
- railties – A gem to handle gems & engines used in a Rails app to work together – rubygems – source code
Other gems that can be used with Rails
- ace-rails-ap – A gem to integrate ajax.org cloud9 editor into Rails asset pipeline – rubygems – source code
- action_policy – A tool to handle authorization – rubygems – source code
- active_decorator – A gem to keep views & helpers object-oriented – rubygems – source code
- active_enum – A gem to provide enum classes – rubygems – source code
- activeadmin – A gem to provide admin panel – rubygems – source code
- activity_notification – A gem to integrate user activity notification – rubygems – source code
- ahoy_email – A tool to provide mail analytics – rubygems – source code
- algoliasearch-rails – A gem to integrate Algolia search – rubygems – source code
- annotate – A gem to annotate rails classes with schema & routes info – rubygems – source code
- anycable-rails – A gem to handle websocket server – rubygems – source code
- apipie-rails – A REST API documentation tool – rubygems – source code
- autoprefixer-rails – A gem to add vendor prefixes to stylesheets – rubygems – source code
- avo – Configuration-based, no-maintenance, extendable Ruby on Rails admin rubygems – source code – 🌍
- better_errors – A tool to provide better error page – rubygems – source code
- brakeman – A gem to scan code against security vulnerabilities – rubygems – source code
- breadcrumbs_on_rails – A gem to create & manage breadcrumbs-style navigation – rubygems – source code
- bulma-rails – A wrapper for bulma, a CSS framework based on flexbox – rubygems – source code
- cancancan – A gem to handle authorization – rubygems – source code
- counter_culture – A gem to provide counter caches – rubygems – source code
- devise – A gem to provide authentication – rubygems – source code
- doorkeeper – A gem to introduce oauth2 provider functionality – rubygems – source code
- draper – A gem to add presentation logic – rubygems – source code
- factory_bot_rails – A fixture replacement for testing in Rails – rubygems – source code
- filestack-rails – A gem to integrate filestack – rubygems – source code
- friendly_id – A gem to deal with slugs & permalinks – rubygems – source code
- gretel – A tool to generate breadcrumbs – rubygems – source code
- groupdate – A gem to manage temporal data – rubygems – source code
- js-routes – A tool to generate all rails routes as javascript helpers – rubygems – source code
- kaminari – A gem to provide pagination – rubygems – source code
- lockbox – A gem to deal with encryption – rubygems – source code
- lograge – A gem to customize logging Rails apps – rubygems – source code
- mailkick – A tool to handle mail unsubscriptions – rubygems – source code
- paloma – A gem to manage page-specific javascript in Rails – rubygems – source code
- pgcli-rails – A replacement of
rails:dbconsole
command to manage postgresql – rubygems – source code - prerender_rails – A gem to prerender javascript-rendered pages – rubygems – source code
- rails-settings-cached – A gem to manage global settings as key-value pairs – rubygems – source code
- rails_admin – A gem to create & manage admin panel for rails app – rubygems – source code
- rails_event_store – A gem to implement event store in Rails – rubygems – source code
- rails_semantic_logger – A gem to provide alternative logging approach for rails app – rubygems – source code
- ranked-model – A gem to handle sorting for rows – rubygems – source code
- ransack – A gem to provide search functionality – rubygems – source code
- react-rails – A gem to integrate react.js with rails app – rubygems – source code
- redisWebManager – Web interface that allows you to manage easily your Redis instance – rubygems – source code
- reform-rails – A gem to wrap reform gem, a form validation tool, with rails app – rubygems – source code
- rodauth-rails – A gem to wrap rodauth, an authentication handler, for Rails apps – rubygems – source code
- rollup – A gem to handle time-series data in Rails – rubygems – source code
- route_translator – A tool to handle route translation – rubygems – source code
- rspec-rails – A testing framework – rubygems – source code
- rubocop-rails – A code style checking tool – rubygems – source code
- scenic – A gem to manage database views – rubygems – source code
- searchkick – A gem to provide search ability – rubygems – source code
- simple_form – A gem to handle forms – rubygems – source code
- spree – Spree is an open source E-commerce platform – rubygems – source code
- spring – A gem to preload a Rails app – rubygems – source code
- sprockets – A gem to compile & serve web assets – rubygems – source code
- tinymce-rails – A gem to integrate tinymce into Rails asset pipeline – rubygems – source code
- view_component – A gem to introduce view components – rubygems – source code
- webpacker – A gem to bundle web assets using webpack – rubygems – source code
- zeitwerk – A gem to handle thread-safe code loading – rubygems – source code
Starters/Boilerplates
- 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 – Application template for Rails 6 projects; preloaded with best practices for TDD, security, deployment, and developer productivity.
Other Rails Tools
Platforms
- Nanobox – A micro-PaaS (μPaaS) for creating consistent, isolated, development environments deployable anywhere 🌍.
Generators
Generator | Ready to run | Complex Apps | Sets git | Heroku |
---|---|---|---|---|
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 |
DevTools
- rails-dashboard – A dev-tool to improve your rails log.
- Optic – Optic automatically documents and tests your APIs