Awesome Rails Gem Awesome

A collection of awesome Ruby Gems for Rails development.

The goal is to help every Rails developer to build an awesome Rails product/service.

User

Authentication

  • Devise19k 5k - Devise is a flexible authentication solution for Rails based on Warden.
  • Knock1k 116 - Seamless JWT authentication for Rails API.
  • Clearance4k 582 - Rails authentication with email & password.
  • Devise token auth2k 753 - Token based authentication for Rails JSON APIs.
  • Sorcery258 48 - Magical Authentication for Rails. Supports ActiveRecord, DataMapper, Mongoid and MongoMapper.

Authorization

  • Pundit5k 479 - Pundit provides a set of helpers which guide you in leveraging regular Ruby classes and object oriented design patterns to build a simple, robust and scaleable authorization system.
  • cancancan4k 458 - Continuation of CanCan, the authorization Gem for Ruby on Rails.CanCan is an authorization library for Ruby on Rails which restricts what resources a given user is allowed to access. All permissions are defined in a single location (the Ability class) and not duplicated across controllers, views, and database queries.
  • rolify2k 366 - Role management library with resource scoping.
  • acl9873 122 - Acl9 is a role-based authorization system that provides a concise DSL for securing your Rails application.

Omniauth

Active Record

  • Enumerize1k 162 - Enumerated attributes with I18n and ActiveRecord/Mongoid support. It can be integrated with Simple Form.
  • counter_culture899 130 - Turbo-charged counter caches for your Rails app. Huge improvements over the Rails standard counter caches.
  • custom_counter_cache52 14 - A simple approach to creating a custom counter cache that can be used across multiple models.
  • Sequenced150 34 - Sequenced is a simple gem that generates scoped sequential IDs for ActiveRecord models.
  • FriendlyId5k 566 - FriendlyId is the “Swiss Army bulldozer” of slugging and permalink plugins for ActiveRecord. It allows you to create pretty URL’s and work with human-friendly strings as if they were numeric ids for ActiveRecord models.
  • AASM3k 522 - State machines for Ruby classes (plain Ruby, Rails Active Record, Mongoid).
  • PaperTrail5k 788 - PaperTrail lets you track changes to your models' data. It's good for auditing or versioning.
  • paranoia752 189 - ActiveRecord plugin allowing you to hide and restore records without actually deleting them.
  • Validates30 18 - Validates provides collection of useful custom validators for Rails applications, including:
    • EmailValidator
    • UrlValidator
    • SlugValidator
    • MoneyValidator
    • IpValidator
    • AssociationLengthValidator
    • AbsolutePathValidator
    • UriComponentValidator
    • ColorValidator
    • EanValidator (EAN-8 & EAN-13)
  • globalize2k 423 - Rails I18n de-facto standard library for ActiveRecord model/data translation.
  • deep_cloneable403 70 - This gem gives every ActiveRecord::Base object the possibility to do a deep clone that includes user specified associations.
  • social_shares291 45 - Check how many times url was shared in social networks.
  • public_activity677 98 - Easy activity tracking for models - similar to Github's Public Activity.
  • goldiloader677 24 - Automatic ActiveRecord eager loading to reduce the number of database queries run by your application.
  • Tagging
    • ActsAsTaggableOn4k 1k - A tagging plugin for Rails applications that allows for custom tagging along dynamic contexts.
    • closure_tree1k 178 - Easily and efficiently make your ActiveRecord models support hierarchies.
  • ActionStore177 10 - Store different kind of actions (Like, Follow, Star, Block ...) in one table via ActiveRecord Polymorphic Association.

Plugins

  • Spreadsheet813 222 - Library is designed to read and write Spreadsheet Documents.
  • Chartkick5k 500 - Chartkick helps your to create beautiful Javascript charts with one line of Ruby.
  • kaminari7k 955 - A Scope & Engine based, clean, powerful, customizable and sophisticated paginator for Rails 3 and 4.
  • CKEditor2k 849 - CKEditor is a WYSIWYG text editor designed to simplify web content creation. It brings common word processing features directly to your web pages. Enhance your website experience with our community maintained editor. ckeditor.com
  • HTML::Pipeline2k 309 - GitHub HTML processing filters and utilities. This module includes a small framework for defining DOM based content filters and applying them to user provided content.
  • Slack Notifier1k 110 is a simple wrapper to send notifications to Slack webhooks.
  • Rails ERD2k 273 - Generate Entity-Relationship Diagrams for Rails applications.
  • Parity374 28 - Shell commands for development, staging, and production parity for Heroku apps.
  • Airbrussh534 29 - Airbrussh pretties up your SSHKit and Capistrano output

API

  • Grape2k 444 - Microframework to create REST-ful APIs in Ruby.
  • ActiveModel::Serializers5k 2k - Serializer brings convention over configuration to your JSON generation.
  • Jbuilder3k 345 - Jbuilder gives you a simple DSL for declaring JSON structures that beats massaging giant hash structures. This is particularly helpful when the generation process is fraught with conditionals and loops.
  • rest-client4k 876 - Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.
  • has_scope1k 76 - Map incoming controller parameters to named scopes in your resources.
  • Documentation
    • Grape Swagger367 163 - Autogenerate documentation on Grape API.
    • Grape Swagger UI11k 6k - Display documentation that is generated using Grape Swagger.
    • apiary - Work together to quickly design, prototype, document and test APIs.
    • apiblueprint - API Documentation with powerful tooling.

Email

  • letter_opener3k 216 - Preview mail in the browser instead of sending.

File Uploading

  • Carrierwave8k 2k - Carrierwave is a classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks.
    • carrierwave_backgrounder667 202 - Offload CarrierWave's image processing and storage to a background process using Delayed Job, Resque, Sidekiq, Qu, Queue Classic or Girl Friday.
    • CarrierWave Crop22 14 - Carrierwave extension to crop uploaded images using Jcrop plugin with preview.
    • CarrierWave ImageOptimizer159 19 - This gem allows you to simply optimize CarrierWave images via jpegoptim or optipng using the image_optimizer gem.
  • remotipart1k 243 - Rails jQuery file uploads via standard Rails "remote: true" forms.
  • MiniMagick2k 301 - MiniMagick is a ruby wrapper for ImageMagick or GraphicsMagick command line.
  • fog4k 2k - Fog is the Ruby cloud services library, top to bottom.
  • refile1k 238 - Refile is a modern file upload library for Ruby applications. It is simple, yet powerful.
  • Paperclip9k 2k - Easy file attachment management for ActiveRecord.
  • Dragonfly - Dragonfly is for on-the-fly file processing - suitable for images or other attachments
  • shrine1k 84 -File Attachment toolkit for Ruby applications

Searching

  • ransack4k 618 - Ransack enables the creation of both simple and advanced search forms for your Ruby on Rails application.
  • elasticsearch-rails1k 414 - Elasticsearch integrations for ActiveModel/Record and Ruby on Rails.
  • Chewy1k 292 - High-level Elasticsearch Ruby framework based on the official elasticsearch-ruby client.
  • pg_search2k 243 - pg_search builds ActiveRecord named scopes that take advantage of PostgreSQL's full text search
  • sunspot3k 946 - Sunspot is a Ruby library for expressive, powerful interaction with the Solr search engine. Sunspot is built on top of the RSolr library, which provides a low-level interface for Solr interaction; Sunspot provides a simple, intuitive, expressive DSL backed by powerful features for indexing objects and searching for them.
  • searchkick4k 556 - Intelligent search made easy with Rails and Elasticsearch.

Scheduled/Recurrence Jobs

  • Whenever7k 693 - Whenever is a Ruby gem that provides a clear syntax for writing and deploying cron jobs.
  • Resque8k 2k - Redis-backed Ruby library for creating background jobs, placing them on multiple queues, and processing them later.
  • Rufus-Scheduler2k 176 - Rufus-scheduler is a Ruby gem for scheduling pieces of code (jobs). It understands running a job AT a certain time, IN a certain time, EVERY x time or simply via a CRON statement.
  • Delayed Job4k 950 - Database based asynchronous priority queue system.
  • Sidekiq8k 2k - Simple, efficient background processing for Ruby.
  • Sucker Punch2k 121 - Sucker punch is a single-process Ruby asynchronous processing library.

View Helper

  • formtastic5k 670 - Formtastic is a Rails FormBuilder DSL (with some other goodies) to make it far easier to create beautiful, semantically rich, syntactically awesome, readily stylable and wonderfully accessible HTML forms in your Rails applications
  • Simple Form7k 1k - Simple form aims to be as flexible as possible while helping you with powerful components to create your forms. The basic goal of Simple Form is to not touch your way of defining the layout, letting you find the better design for your eyes.
  • Nested Form2k 444 - This is a Rails gem for conveniently manage multiple nested models in a single form. It does so in an unobtrusive way through jQuery or Prototype. It can also be integrated with Simple Form.
  • meta-tags2k 254 - Search Engine Optimization (SEO) plugin for Ruby on Rails applications.
  • active_link_to619 71 - active_link_to adds css 'active' class to your links.
  • cells3k 239 - Cells allow you to encapsulate parts of your UI into components into view models. View models, or cells, are simple ruby classes that can render templates.
  • i18n Country Code Select19 24 - I18n Country Code Select Form Helper for Rails 3 & 4.
  • Subdivision Select12 6 - A Rails plugin to populate a state/province select box from country_select.
  • cocoon3k 324 - Dynamic nested forms using jQuery made easy

Environment Variables

  • Config538 66 - Multi-environment YAML style configurations that helps easily manage environment specific settings in an easy and usable manner.
  • Figaro3k 265 - Figaro is very simple, Heroku-friendly Rails app configuration using ENV and a single YAML file.
  • dotenv4k 324 - Dotenv is a gem that allows you to set your environment variables in .env file, and it will load it in to ENV.
  • opsworks-dotenv3 1 - Opsworks-dotenv let you configure the environment for you Rails application using OpsWorks, Chef and Dotenv.

Admin Panel

  • ActiveAdmin - ActiveAdmin is a administration framework for Ruby on Rails applications.
  • RailsAdmin7k 2k - RailsAdmin is a Rails engine that provides an easy-to-use interface for managing your data.
  • Typus1k 265 - Typus is a control panel for Ruby on Rails applications to allow trusted users edit structured content.
  • administrate4k 753 - A Rails engine that helps you put together a super-flexible admin dashboard.

Logging

  • Impressionist1k 255 - Impressionist can log page impressions (technically action impressions), but it is not limited to that. You can log impressions multiple times per request. And you can also attach it to a model. The goal of this project is to provide customizable stats that are immediately accessible in your application as opposed to using Google Analytics and pulling data using their API.
  • Ahoy2k 241 - Ahoy provides a solid foundation to track visits and events in Ruby, JavaScript, and native apps.
  • Lograge2k 194 - An attempt to tame Rails' default policy to log everything.

Debug

  • byebug3k 264 - Byebug is a simple to use, feature rich debugger for Ruby 2. It uses the new TracePoint API for execution control and the new Debug Inspector API for call stack navigation, so it doesn't depend on internal core sources.
    • pry-byebug1k 102 - Pry navigation commands via byebug.
  • pry-rails979 73 - Avoid repeating yourself, use pry-rails instead of copying the initializer to every rails project. This is a small gem which causes rails console to open pry. It therefore depends on pry.
  • awesome_print381 39 - Awesome Print is a Ruby library that pretty prints Ruby objects in full color exposing their internal structure with proper indentation.
  • web-console1k 133 - Web Console is a debugging tool for your Ruby on Rails applications.
  • spring2k 287 - Spring is a Rails application preloader. It speeds up development by keeping your application running in the background so you don't need to boot it every time you run a test, rake task or migration.
  • rails-footnotes2k 153 - Rails footnotes displays footnotes in your application for easy debugging, such as sessions, request parameters, cookies, filter chain, routes, queries, etc.
  • g93 15 - The Kernel.g that works like Kernel.p by using terminal-notifier or growl.
  • terminal-notifier1k 135 - terminal-notifier is a command-line tool to send Mac OS X User Notifications, which are available in Mac OS X 10.8 and higher.
  • letter_opener3k 216 - Preview email in the default browser instead of sending it. This means you do not need to set up email delivery in your development environment, and you no longer need to worry about accidentally sending a test email to someone else's address.
  • Better Errors7k 475 - Better errors replaces the standard Rails error page with a much better and more useful error page.
    • If you would like to use Better Errors' advanced features (REPL, local/instance variable inspection, pretty stack frame names), you need to add the binding_ _of__caller356 27 .
  • RailsPanel3k 147 - RailsPanel is a Chrome extension for Rails development that will end your tailing of development.log.

Coding Style

  • RuboCop9k 2k - Rubocop is a Ruby static code analyzer. Out of the box it will enforce many of the guidelines outlined in the community Ruby Style Guide7k 2k .
  • Rails Best Practice4k 262 - Rails best practice is a code metric tool to check the quality of rails codes.
  • Metric Fu560 102 - A fist full of code metrics
  • Pronto2k 157 - Quick automated code review of your changes

Testing

  • rspec-rails4k 867 - Rspec-rails is a testing framework for Rails 3.x and 4.x.
  • Capybara8k 1k - Capybara helps you test web applications by simulating how a real user would interact with your app. And drivers:
    • capybara-webkit2k 513 - Capybara-webkit is a capybara driver that uses Webkit via QtWebkit.
    • selenium-webdriver18 9 - Selenium-webdriver provides ruby bindings for WebDriver.
    • poltergeist3k 734 - Poltergeist allows you to run your Capybara tests on a headless WebKit browser, provided by PhantomJS.
    • page-object589 237 - Page-object is a simple gem that assists in creating flexible page objects for testing browser based applications.
  • factory_girl6k 2k - Factory_girl is a fixtures replacement with a straightforward definition syntax, support for multiple build strategies (saved instances, unsaved instances, attribute hashes, and stubbed objects), and support for multiple factories for the same class (user, admin_user, and so on), including factory inheritance.
  • factory_girl_rails3k 516 - Factory_girl_rails provides Rails integration for factory_girl.
  • factory_factory_girl49 4 - FactoryFactoryGirl lets you generate factory files more efficiently with naming rules.
  • Database Cleaner2k 457 - Database Cleaner is a set of strategies for cleaning your database in Ruby.Support ActiveRecord, DataMapper, Sequel, MongoMapper, Mongoid, CouchPotato, Ohm and Redis.
  • shoulda-matchers2k 826 - Shoulda-matchers provides serveral matchers for testing common Rails functionality.
  • ResponseCodeMatchers49 6 - ResponseCodeMatchers provides rspec matchers to match http response code.
  • SimpleCov3k 427 - SimpleCov is a code coverage analysis tool for Ruby.
  • Timecop3k 172 - A gem providing "time travel" and "time freezing" capabilities, making it dead simple to test time-dependent code.
  • VCR4k 438 - Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.

Security

  • brakeman5k 514 - Brakeman is a static analysis tool which checks Ruby on Rails applications for security vulnerabilities.
  • bundle-audit2k 117 - bundler-audit is a patch-level verification tool for Bundler which checks for vulnerable versions of gems and insecure gem sources.
  • Secure Headers3k 232 - Secure Headers will automatically apply several headers that are related to security.

Production

  • Capistrano11k 2k - Remote multi-server automation tool.
  • Slowpoke131 8 - Rack::Timeout is great. Slowpoke makes it better.
  • Rack Attack3k 195 - Rack middleware to blocking & throttling.
  • Responders2k 131 - A set of Rails responders to dry up your application.
  • production_rails100 3 - Best practices for running Rails in production.
  • Mina4k 467 - fast deployer and server automation tool.

Error Logging

  • Rollbar332 230 - Exception tracking and logging from Ruby to Rollbar.
  • Airbrake877 440 - Notifier gem for integrating apps with Airbrake
  • Errbit4k 1k - Open source notifier gem compliant with Airbrake.

Database

  • rails_db925 84 - Rails Database Viewer and SQL Query Runner

Asset Pipeline

  • Alaska46 2 - ExecJS runtime with persistent connection to nodejs, speeds up your coffeescript compilation process during development and deployment.

Contribute

Contributions welcome! Read the contribution guidelines first.