Posted about 1 month ago. Visible to the public. Repeats.

Howto: Choose the right gems for your project

Adding a gem means you take over the liability towards the external code.


Based on "To gem, or not to gem":

  • Gem is really needed (prefer writing your own code for simple requirements without many edge cases)
  • Gem is tested well (coverage and quality)
  • Gem has a good code quality
  • Gem's licence fits to the project requirement
  • Try to avoid gems that do much more than your requirement scope needs
  • Gem has a good maturity and maintenance
  • Gem has a good / familiar DSL
  • If it's hard to do right, choose a mature gem (e.g. Devise or Clearance for authentication) instead of building it yourself

Also see the chapter "Owning your Stack" in the book Growing Rails Applications in Practice.


makandra has been working exclusively with Ruby on Rails since 2007. Our laser focus on a single technology has made us a leader in this space.

Author of this card:

Emanuel De
Last edit:
about 1 month ago
by Henning Koch
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Emanuel De to makandropedia