DEV Community

Discussion on: What backend are you using?

Collapse
 
briankephart profile image
Brian Kephart

Rails on Heroku, with Postgres and Redis. I work alone rather than as part of a team, and the convenience and productivity of these tools is phenomenal under those circumstances. The Rails team has done a great job keeping the framework up-to-date too, making it both well-established and continually improving. It hands you a lot of configuration by default, including important security options. Abstracting away virtually all ops concerns via Heroku has been invaluable to me.

Rails is opinionated, so the biggest reason not to use it is if your opinions differ from those it is based on. Additionally, if you are a fan of static typing over dynamic, you will hate it. If you're concerned about memory usage, you will hate it. If you rely on a compiler to find errors for you, you will hate it. Rails lets you build your app fast, but that means you build up technical debt just as fast if you are not disciplined as you go.

As for Heroku, the biggest reason not to use it is that the shared infrastructure leads to variable performance. My response times and memory usage vary from day-to-day. This is an issue that isn't unique to Heroku, but more a byproduct of shared cloud infrastructure. Heroku also restarts all dynos once a day, so if you rely on long-running processes or have long startup times it might not be a great fit.