Do you use the devise gem to create users in your Rails apps?

I’d like to hear your opinions.

On the one hand, it’s clearly easier in the short run to use the devise gem.

On the other hand, Rails Tutorial maintains that modifying an off-the-shelf solution is a “black box” and can be more work than creating the user functionality from scratch.

In a perfect world a solid gem would be extremely popular, well-documented, maintained and updated frequently, and serve a purpose that isn't short lived. It also needs to be flexible.

In the case of devise, it has few bugs and fits all of the criteria above.

However, in terms of overhead, the type of project you are going to be working with may not require all of its features. Is it better to build your own authentication and understand every nuance of code you've implemented? Does it give you 100% flexibility? Certainly. But, make sure you know what you are doing also.

It's one thing to be stuck in a black box and quite another to bury yourself in cement.