5
16 Comments

Are Heroku's free options enough to get a SaaS up and running for a while?

I'm familiar with the platform, but am wondering for those SaaS operators who have done this: can you get by on the free offerings for the first handful of customers, say for a Rails stack?

The typical Rails deployment is going to require a web and worker dyno, Sidekiq and Postgres (and possibly more). Will the free options provide all this functionality up until the first database row limit is reached? Otherwise, which paid options will be required?

I'd prefer to keep costs to a minimum until (hopefully) some customers are signed up. AWS accommodates this, but I'm tired of fiddling with their stack.

  1. 3

    No, and you probably don't want too. The spin your dyno down after 1 hour(?) of inactivity, meaning your users have to wait a fair bit before they'll see anything on screen.

    I too, use Rails. My strategy for the past years has been: deploy to VPS (DO) and once a project becomes a business, I move it to Heroku.
    I have a fairly big DO droplet that can easily host multiple bigger Rails apps.
    For deployments and server setup I've been using https://www.hatchbox.io since it launched. Really recommended.

    1. 1

      Hatch looks awesome! Is anyone aware of any similar tools made specifically for Django?

  2. 2

    I personally wouldn't put a customer facing app on the free plan. I don't even use most internal tools on the free plan if I use them regularly. The hobby database options suck. You could probably get away with like Standard 0 Postgres and 2 hobby dynos. Thats like $64 a month.

    1. 1

      Which is okay if you have anything resembling a viable business, but it would be nice if the ramp-up could be more gradual. (I don't want to start a new app out at that level.)

      AWS is great with that, but Elastic Beanstalk (past the most vanilla of configurations), CloudFormation, etc. all require the sort of mucking about I'd rather avoid. A VPS, even more so.

      Do you happen to have a favorite option?

      1. 2

        I mean I guess the question is how much is an hour of your time worth? If I could get away with 1 dyno + db then I'd generally pick Heroku since I don't have to maintain the servers.

        I do use DigitalOcean for some smaller setups where you can probably get away with like $25-30 for a small db server + app server or a larger combined one. If a heroku free level db was going to do it for you then a $20 droplet alone is probably enough and you can install postgres + most common stacks in a few minutes.

        If you're worried about installing and maintaining software though then I think the extra $50/month is 100% worth it.

        1. 1

          From my perspective it's always been about installing software and configuring a server properly. Which deployment tool, which packages, following the typical checklist for security (I think I saw one the other day with tens of items) and configuring SSH and iptables or whatever, and knowing I'm probably still missing important stuff. I don't want to be in that business--I'm not a security (or networking) expert. With Ansible for example, I need to go out and parse through a bunch of old recipes, cobble them together, and so on. Bah!

          Wish someone would provide a good deployment story for the little guy. Heroku seems too costly, too soon. (Though many say it's too expensive later, too!)

          1. 1

            I think you're overthinking the single server setups. I do it too because it can be fun and before you know it you have a kubernetes autoscaling cluster for an app with 3 users.

            Select a droplet, Install ubuntu LTS, The digitalocean guides will walk you through basic setup in 5 minutes with ipfw, postgres is like another 5 minutes, then depending on what language you use nginx/apache probably another 5 on top of that and you're done. It's unlikely you'll have any security issues that aren't from your own code in that setup but just make sure you log in every week and run apt-get update && apt-get upgrade.

            You shouldn't need ansible for a single server setup. I mean it can be nice piece of mind to have the ability to rebuild a server with one click but you'll probably do better just turning on backups on your single server.

            Otherwise $60 for a month of not having to do any server work is dirt cheap.

      2. 0

        Is $64/mo really a lot for an essential business expense?

        If you're really committed to it you can use aws codestar with the rails / beanstalk combo, so you just push code to git and it deploys. I believe you have to attach the db, but that's point and click in the beanstalk console. That could be under $20/mo.

  3. 2

    The biggest problem you'll likely have with the free tier is Heroku will sleep your app after a certain period of inactivity. Once asleep, it takes a handful (or two handfuls) of seconds to awaken after the next request is received by your app, which I find unacceptable in terms of UX.

    Each Heroku "add-on", e.g., Postgres, will have its own pricing plan, many of which offer a free tier. You should check the relevant pages on the website for details.

    1. 1

      That's still handled by a regular "poke" though, no?

      1. 2

        You only get 1000 free hours a month so with 2 dynos running you'll run out 2/3rds of the way through the month if they are always on.

        1. 1

          True. I was just reminded of that while reviewing their worker documentation, too.

  4. 1

    Love heroku for their ease of deployment, however for projects that you intend to generate revenue from, it is quite risky since you will need good SEO and good user experience.

    You cannot get two of those with the free tier due to the fact they are very slow (Google punishes websites that load slowly for search ranking), compared to using the next cheapest alternative.

  5. 1

    Heroku's policy changes limiting total hours per month make the free tier useless for anyone trying to a real thing.

  6. 1

    Try Hatchbox with DO or Linode

  7. 1

    I’ve been wondering the same thing lately.

    Currently, my plan is to build an MVP on Heroku, share it with people, try and get people to commit/ pay, then figure out a better long term solution.

    Would be great to know what you end up going with.