Last Updated: February 25, 2016
· sschuchlenz

A list of useful gems for starting a new rails app

Something like this may have been posted here a lot of times but I thought I'd share a list of gems I tend to include in my Gemfile when starting up the development of a new app:

# User Authentication
gem 'devise' # devise is a great solution for authentication mechanisms in rails, especially when combined with omniauth and omniauth strategies
gem 'cancan' # provides permission handling (you need an auth gem like devise)
gem 'rolify',:git => "git://" # provides user roles for a devise-cancan-setup
gem 'omniauth' # omniauth handles single sign on (SSO) from external providers like twitter or facebook
gem 'omniauth-facebook' # omniauth package for providing one click facebook authentication
gem 'omniauth-twitter' # omniauth package for providing one click twitter authentication

# File Uploads
gem 'paperclip' # makes handling of file uploads to a model a bliss 

# Localization
gem 'rails-i18n', '~> 3.0.0.pre' # a must have if you need your rails app to be translatable
gem 'devise-i18n' # provides translation for devise

gem 'haml-rails' # instead of the standard .html.erb templates, utizilize the HAML HTML abstraction - this also creates .html.haml scaffold views
gem 'bootstrap-wysihtml5-rails' # bootstrap WYSIWYG editor for use with solutions like rails_admin

# Backend
gem 'rails_admin' # a great out-of-the-box solution for creating an administration backend for your models in no time

# URLs
gem 'friendly_id' # provides for nice URLs in no time (check out the railscast for this too)

# Misc.
gem 'paper_trail', '>= 3.0.0.beta1' # allows for versioning your models (e.g. track changes to user records in rails_admin)
gem 'time_difference' # makes calculating time difference a no-brainer (for example in managing time / date values for countdowns and such)

4 Responses
Add your response

My suggestions should be:
- actsaslist: for order list of active record models
- pundit: a Cancan replacement for user authorization
- draper: for active record decorator
- activemodelserializer: for JSON API

over 1 year ago ·

thanks! never tried pundit - what are the benefits compared to devise and does it work with rolify, too? draper looks interesting, will take a peek for a project I'm currently putting together.

over 1 year ago ·

Personally I prefer CarrierWave over PaperClip. Much cleaner IMHO. Also instead of Slime has nicer syntax IMHO.

over 1 year ago ·

I would add: better_errors gem. I found it very useful while developing.

over 1 year ago ·