There are thousands of Ruby gems out there, each one built to solve a specific problem. Every project has a unique Gemfile, but here are my staples.
I default to Heroku for deploying apps. Once Heroku switched over to Puma, I followed. I prefer to keep my development environment as close to production as possible, to minimize transition errors. I haven't built any massive or overly successful apps (yet), so I can't speak to the performance benefits of Puma at scale.
pg for the same reason as
puma, it's a Heroku default. Rails defaults to
sqlite3 but I don't see the point in using that locally and then hoping that it plays nice with PostgreSQL in production.
This gem has saved me so many times. No more bright red error pages, and the stack trace seems to have much more information. There really isn't much more to say about
better_errors, but you'll probably love it when you use it.
I'm not good at remembering what my database looks like, and this one helps me all the time. With this gem activated, it will add comments to your model and test files that show your current database structure. You'll probably want to run
rails g annotate:install once you've installed the gem, this will make sure your annotations get updated after every database migration.
I know, I know. Some of you out there aren't fans of Bootstrap. That's fine, no hard feelings. I, on the other hand, appreciate it's utility. I've been using Bootstrap for a couple years now and am familiar enough with it that I can style up an app in a matter of hours, not days. That's a big deal to me. Launching an app isn't about being perfect on v1.0, it's about having v1.0 out there for people to see and use.
So there you have it. It's not a long list, and these aren't overly fancy gems, but they're what I use to get a project up and running quickly and efficiently.
If you have gems that you prefer over these, or maybe even some I've never considered using, I'd love to hear about them. Hit me up on Twitter at @seanoldham.
Photo by Wesson Wang