DEV Community

Derek Hopper
Derek Hopper

Posted on

Heroku is still the best way to start a hobby project

The most important step when you start a project is to get it deployed somewhere, anywhere. Running your code in your local development environment is great, but getting your deployment workflow setup is the holy grail.

When I started a hobby project about a month ago, I searched and searched for Heroku alternatives. In the past, I knew Heroku had a tendency to be costly. Heroku can also lack flexibility in certain situations.

After what seemed like an exhaustive search, I gave up. There are alternatives to Heroku, but nothing caught my eye. I had used AWS Elastic Beanstalk for a product in the past, but the initial setup took hours I didn't want to spend.

Ultimately, here's what I wanted in a service

  1. Automated deployment when merging to master
  2. Automated deployment when the tests pass
  3. One click setup of the database, Redis
  4. Process monitoring for Sidekiq
  5. Easy, simple cron
  6. Easy, simple scaling

To this day, Heroku still checks all those boxes. Even more so, everything has improved since I last used Heroku.

I booted up my Heroku account and started looking around. To my surprise, there was a lot I could scale up for free.

What I got out of Heroku

  1. A small PostgreSQL database
  2. A small Redis instance
  3. Cron
  4. A single web dyno
  5. A single Sidekiq dyno
  6. Automated deployments integrated with CircleCI
  7. Bonus: Free Mailgun
  8. Bonus: Free Sentry

Heroku Dynos & Add-ons

I did all of this with minimal configuration. I didn't write any YAML. I don't deploy via the terminal. I don't worry about processes being killed.

The only annoyance is dynos going to sleep. Since the product I'm building isn't in production yet, that's not a big deal.

However, what I do have is a complete deployment workflow and somewhere to ship my code automatically. Instead of worrying about DevOps, I can focus on building. That's worth a lot to me.

Discussion (6)

Collapse
kostjapalovic profile image
Kostja

Hello, Derek!

Just today I wrote about my frustrations with heroku and what i decided to do with them.

Will be interested in your opinion.

dev.to/kostjapalovic/tired-of-depl...

Collapse
derekjhopper profile image
Derek Hopper Author

I actually saw your post a few minutes ago too. Thanks for the reply. I think your concerns are perfectly valid and I would have done the same in your situation. For me, I may end up switching to another service in the future. But for now, since I’m in build mode and the free dynos work out for me, I’ll stick with Heroku.

Collapse
kostjapalovic profile image
Kostja

Hey, Derek!

Yeah for dev-mode free dynos are most of the time fine.

Plus I am sure it is beneficial to be on Heroku in terms of getting used to and ready for ephemeral containers and all this. Helps make your app cleaner and better prepared for different environments (you will have separate env from production to test your new releases, right? :) )

I wish you the best!

If it is Django I will be happy to help if you have doubts/get stuck with something.

Cheers!

Collapse
seanmclem profile image
Seanmclem

It is amazing just being able to publish to heroku and consume your api

Collapse
derekjhopper profile image
Derek Hopper Author

Right?! Let Heroku worry about the deployment so you can focus on building what you want. It's a great feeling.

Collapse
gonzal3x profile image
Alexandre Gonzales

Hi Derek,

I'd love your feedback about flashdrive.io we made it like a real world aternative to Heroku with good performances and affordable prices.

Thanks!

Alex.