Libraries

Authentication

  • Devise - Flexible and modular authentication solution.

  • OmniAuth - Flexible authentication solution for multi-provider auth (e.g. Sign in with GitHub or Google).

Authorization

  • Pundit - Minimal authorization through OO design and pure Ruby classes.

ActiveJob

  • job-iteration - Make background jobs interruptible and resumable by design.

Countries

  • countries - All sorts of useful information about every country packaged as convenient little country objects. It includes data from ISO 3166 (countries and states/subdivisions ), ISO 4217 (currency), and E.164 (phone numbers).

Payments

  • ActiveMerchant - Payment abstraction library extracted from Shopify.

Phones

  • phony_rails - This Gem adds useful methods to your Rails app to validate, display and save phone numbers. It uses the super awesome Phony gem (floere/phony).

Event-Driven Architecture

  • rails_event_store - A Ruby implementation of an Event Store based on Active Record.

  • sequent - CQRS & event sourcing framework for Ruby.

  • Eventide - Microservices, Autonomous Services, Service-Oriented Architecture, and Event Sourcing Toolkit for Ruby with Support for Event Store and Postgres.

Enums

  • Enumerize - Enumerated attributes with I18n and ActiveRecord/Mongoid/MongoMapper/Sequel support.

Database

Auditing

  • audited - An ORM extension that logs all changes to your Rails models.

  • paper_trail - Track changes to your models, for auditing or versioning. See how a model looked at any stage in its lifecycle, revert it to any version, or restore it after it has been destroyed.

Localization

  • globalize - Rails I18n de-facto standard library for ActiveRecord model/data translation.

Forms

  • simple_form - Forms made easy for Rails! It's tied to a simple DSL, with no opinion on markup.

Views

  • view_component - A framework for building reusable, testable & encapsulated view components in Ruby on Rails.

PDF

  • wicked_pdf - PDF generator (from HTML) plugin for Ruby on Rails.

Monitoring

  • Bullet - Helps to kill N+1 queries and unused eager loading.

Testing