Posted over 2 years ago. Visible to the public. Repeats. Linked content.

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.


Once an application no longer requires constant development, it needs periodic maintenance for stable and secure operation. makandra offers monthly maintenance contracts that let you focus on your business while we make sure the lights stay on.

Owner of this card:

Emanuel De
Last edit:
over 2 years 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 makandra dev
This website uses cookies to improve usability and analyze traffic.
Accept or learn more