StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Product

  • Stacks
  • Tools
  • Companies
  • Feed

Company

  • About
  • Blog
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2025 StackShare. All rights reserved.

API StatusChangelog
  1. Home
  2. Platform as a Service
  3. Heroku
Heroku
ByHerokuHeroku

Heroku

Platform as a Service
Discussions52
OverviewOverviewPros & ConsProsIntegrationsIntegrationsDiscussionsDiscussionsAlternativesAlternatives

What is Heroku?

Heroku is a cloud application platform – a new way of building and deploying web apps. Heroku lets app developers spend 100% of their time on their application code, not managing servers, deployment, ongoing operations, or scaling.

Heroku is a tool in the Platform as a Service category of a tech stack.

Key Features

Agile deployment for Ruby, Node.js, Clojure, Java, Python, Go and Scala.Run and scale any type of app.Total visibility across your entire app.Erosion-resistant architecture. Rich control surfaces.

Heroku Pros & Cons

Pros of Heroku

  • ✓Easy deployment
  • ✓Free for side projects
  • ✓Huge time-saver
  • ✓Simple scaling
  • ✓Low devops skills required
  • ✓Easy setup
  • ✓Add-ons for almost everything
  • ✓Beginner friendly
  • ✓Better for startups
  • ✓Low learning curve

Cons of Heroku

  • ✗Super expensive
  • ✗Not a whole lot of flexibility
  • ✗No usable MySQL option
  • ✗Storage
  • ✗Low performance on free tier
  • ✗24/7 support is $1,000 per month

Heroku Alternatives & Comparisons

What are some alternatives to Heroku?

Google App Engine

Google App Engine

Google has a reputation for highly reliable, high performance infrastructure. With App Engine you can take advantage of the 10 years of knowledge Google has in running massively scalable, performance driven systems. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow.

Apollo

Apollo

Build a universal GraphQL API on top of your existing REST APIs, so you can ship new application features fast without waiting on backend changes.

AWS Elastic Beanstalk

AWS Elastic Beanstalk

Once you upload your application, Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring.

Apache Camel

Apache Camel

An open source Java framework that focuses on making integration easier and more accessible to developers.

Red Hat OpenShift

Red Hat OpenShift

OpenShift is Red Hat's Cloud Computing Platform as a Service (PaaS) offering. OpenShift is an application platform in the cloud where application developers and teams can build, test, deploy, and run their applications.

Azure Websites

Azure Websites

Azure Websites is a fully managed Platform-as-a-Service (PaaS) that enables you to build, deploy and scale enterprise-grade web Apps in seconds. Focus on your application code, and let Azure take care of the infrastructure to scale and securely run it for you.

Heroku Integrations

Blitz, HipChat, Logentries, Nitrous.IO, Redis To Go and 7 more are some of the popular tools that integrate with Heroku. Here's a list of all 12 tools that integrate with Heroku.

Blitz
Blitz
HipChat
HipChat
Logentries
Logentries
Nitrous.IO
Nitrous.IO
Redis To Go
Redis To Go
Searchify
Searchify
Urban Airship
Urban Airship
Grove
Grove
RedisGreen
RedisGreen
CameraTag
CameraTag
Panda
Panda
Ebook Glue
Ebook Glue

Heroku Discussions

Discover why developers choose Heroku. Read real-world technical decisions and stack choices from the StackShare community.Showing 9 of 10 discussions.

Yonas Beshawred
Yonas Beshawred

CEO at StackShare

Mar 8, 2019

Needs adviceonMemCachierMemCachierPostgreSQLPostgreSQLRailsRails

We decided to use MemCachier as our Memcached provider because we were seeing some serious PostgreSQL performance issues with query-heavy pages on the site. We use MemCachier for all Rails caching and pretty aggressively too for the logged out experience (fully cached pages for the most part). We really need to move to Amazon ElastiCache as soon as possible so we can stop paying so much. The only reason we're not moving is because there are some restrictions on the network side due to our main app being hosted on Heroku.

#Caching #RailsCaching

0 views0
Comments
Tim Nolet
Tim Nolet

CTO at Checkly Inc.

Mar 1, 2019

Needs adviceonHerokuHerokuDockerDockerGitHubGitHub

Heroku Docker GitHub Node.js hapi Vue.js AWS Lambda Amazon S3 PostgreSQL Knex.js Checkly is a fairly young company and we're still working hard to find the correct mix of product features, price and audience.

We are focussed on tech B2B, but I always wanted to serve solo developers too. So I decided to make a $7 plan.

Why $7? Simply put, it seems to be a sweet spot for tech companies: Heroku, Docker, Github, Appoptics (Librato) all offer $7 plans. They must have done a ton of research into this, so why not piggy back that and try it out.

Enough biz talk, onto tech. The challenges were:

  • Slice of a portion of the functionality so a $7 plan is still profitable. We call this the "plan limits"
  • Update API and back end services to handle and enforce plan limits.
  • Update the UI to kindly state plan limits are in effect on some part of the UI.
  • Update the pricing page to reflect all changes.
  • Keep the actual processing backend, storage and API's as untouched as possible.

In essence, we went from strictly volume based pricing to value based pricing. Here come the technical steps & decisions we made to get there.

  1. We updated our PostgreSQL schema so plans now have an array of "features". These are string constants that represent feature toggles.
  2. The Vue.js frontend reads these from the vuex store on login.
  3. Based on these values, the UI has simple v-if statements to either just show the feature or show a friendly "please upgrade" button.
  4. The hapi API has a hook on each relevant API endpoint that checks whether a user's plan has the feature enabled, or not.

Side note: We offer 10 SMS messages per month on the developer plan. However, we were not actually counting how many people were sending. We had to update our alerting daemon (that runs on Heroku and triggers SMS messages via AWS SNS) to actually bump a counter.

What we build is basically feature-toggling based on plan features. It is very extensible for future additions. Our scheduling and storage backend that actually runs users' monitoring requests (AWS Lambda) and stores the results (S3 and Postgres) has no knowledge of all of this and remained unchanged.

Hope this helps anyone building out their SaaS and is in a similar situation.

0 views0
Comments
bpr-admin
bpr-admin

Dec 21, 2018

Needs adviceonAWS Elastic BeanstalkAWS Elastic BeanstalkHerokuHerokuRubyRuby

We initially started out with Heroku as our PaaS provider due to a desire to use it by our original developer for our Ruby on Rails application/website at the time. We were finding response times slow, it was painfully slow, sometimes taking 10 seconds to start loading the main page. Moving up to the next "compute" level was going to be very expensive.

We moved our site over to AWS Elastic Beanstalk , not only did response times on the site practically become instant, our cloud bill for the application was cut in half.

In database world we are currently using Amazon RDS for PostgreSQL also, we have both MariaDB and Microsoft SQL Server both hosted on Amazon RDS. The plan is to migrate to AWS Aurora Serverless for all 3 of those database systems.

Additional services we use for our public applications: AWS Lambda, Python, Redis, Memcached, AWS Elastic Load Balancing (ELB), Amazon Elasticsearch Service, Amazon ElastiCache

0 views0
Comments
Jerome Dalbert
Jerome Dalbert

Principal Backend Software Engineer

Dec 6, 2018

Needs adviceonRailsRailsHerokuHerokuGitGit

Rails is great because "all the decisions are made for you", right? But I wouldn't be writing this decision if this were truly the case. ;-)

rails new and boilerplate generators are nice, but you still have to spend some time adding your favorite gems, tools, formatting files to your standards, removing unused functionality, and configuring deploys. Only after all of this can you truly begin to code.

That’s why I made a shell script (yeah, Rails generators are overkill) that creates a new app from a boilerplate app I preconfigured. Everyone has different tastes and levels of seniority, so I am not sharing this app to the public. Just know that it has different Git branches that my shell script can choose: master (default config), devise, forms, worker, etc. It comes bundled with the tools listed in my personal stack.

All I have to do is run the script, follow the README, and 2 minutes later my app is running a hello world page on Heroku! I cannot stress how powerful it is to have a professional-grade application ready and deployed in 2 minutes. It feels like I’m cheating the system. These superpowers have proved invaluable for personal projects, hackathons and professional projects alike.

Productivity ProjectGenerator PersonalStack

0 views0
Comments
Russel Werner
Russel Werner

Lead Engineer at StackShare

Dec 3, 2018

Needs adviceonReactReactGlamorousGlamorousApolloApollo

StackShare Feed is built entirely with React, Glamorous, and Apollo. One of our objectives with the public launch of the Feed was to enable a Server-side rendered (SSR) experience for our organic search traffic. When you visit the StackShare Feed, and you aren't logged in, you are delivered the Trending feed experience. We use an in-house Node.js rendering microservice to generate this HTML. This microservice needs to run and serve requests independent of our Rails web app. Up until recently, we had a mono-repo with our Rails and React code living happily together and all served from the same web process. In order to deploy our SSR app into a Heroku environment, we needed to split out our front-end application into a separate repo in GitHub. The driving factor in this decision was mostly due to limitations imposed by Heroku specifically with how processes can't communicate with each other. A new SSR app was created in Heroku and linked directly to the frontend repo so it stays in-sync with changes.

Related to this, we need a way to "deploy" our frontend changes to various server environments without building & releasing the entire Ruby application. We built a hybrid Amazon S3 Amazon CloudFront solution to host our Webpack bundles. A new CircleCI script builds the bundles and uploads them to S3. The final step in our rollout is to update some keys in Redis so our Rails app knows which bundles to serve. The result of these efforts were significant. Our frontend team now moves independently of our backend team, our build & release process takes only a few minutes, we are now using an edge CDN to serve JS assets, and we have pre-rendered React pages!

#StackDecisionsLaunch #SSR #Microservices #FrontEndRepoSplit

0 views0
Comments
Jerome Dalbert
Jerome Dalbert

Principal Backend Software Engineer at Gratify Commerce

Sep 14, 2018

Needs adviceonRailsRailsHerokuHerokuAWS Elastic BeanstalkAWS Elastic Beanstalk

When creating the web infrastructure for our start-up, I wanted to host our app on a PaaS to get started quickly.

A very popular one for Rails is Heroku, which I love for free hobby side projects, but never used professionally. On the other hand, I was very familiar with the AWS ecosystem, and since I was going to use some of its services anyways, I thought: why not go all in on it?

It turns out that Amazon offers a PaaS called AWS Elastic Beanstalk, which is basically like an “AWS Heroku”. It even comes with a similar command-line utility, called "eb”. While edge-case Rails problems are not as well documented as with Heroku, it was very satisfying to manage all our cloud services under the same AWS account. There are auto-scaling options for web and worker instances, which is a nice touch. Overall, it was reliable, and I would recommend it to anyone planning on heavily using AWS.

0 views0
Comments
Tim Specht
Tim Specht

‎Co-Founder and CTO at Dubsmash

Sep 13, 2018

Needs adviceonPostgreSQLPostgreSQLHerokuHerokuAmazon RDSAmazon RDS

Over the years we have added a wide variety of different storages to our stack including PostgreSQL (some hosted by Heroku, some by Amazon RDS) for storing relational data, Amazon DynamoDB to store non-relational data like recommendations & user connections, or Redis to hold pre-aggregated data to speed up API endpoints.

Since we started running Postgres ourselves on RDS instead of only using the managed offerings of Heroku, we've gained additional flexibility in scaling our application while reducing costs at the same time.

We are also heavily testing Amazon RDS for Aurora in its Postgres-compatible version and will also give the new release of Aurora Serverless a try!

#SqlDatabaseAsAService #NosqlDatabaseAsAService #Databases #PlatformAsAService

0 views0
Comments
Tim Specht
Tim Specht

‎Co-Founder and CTO at Dubsmash

Sep 13, 2018

Needs adviceonPythonPythonHerokuHerokuAmazon EC2Amazon EC2

Since we deployed our very first lines of Python code more than 2 years ago we are happy users of Heroku. It lets us focus on building features rather than maintaining infrastructure, has super-easy scaling capabilities, and the support team is always happy to help (in the rare case you need them).

We played with the thought of moving our computational needs over to barebone Amazon EC2 instances or a container-management solution like Kubernetes a couple of times, but the added costs of maintaining this architecture and the ease-of-use of Heroku have kept us from moving forward so far.

Running independent services for different needs of our features gives us the flexibility to choose whatever data storage is best for the given task.

#PlatformAsAService #ContainerTools

0 views0
Comments
Kir Shatrov
Kir Shatrov

Engineering Lead at Shopify

Sep 13, 2018

Needs adviceonkubernetes-deploykubernetes-deployShipitShipitHerokuHeroku

Shipit, our deployment tool, is at the heart of Continuous Delivery at Shopify. Shipit is an orchestrator that runs and tracks progress of any deploy script that you provide for a project. It supports deploying to Rubygems, Pip, Heroku and Capistrano out of the box. For us, it's mostly kubernetes-deploy or Capistrano for legacy projects.

We use a slightly tweaked GitHub flow, with feature development going in branches and the master branch being the source of truth for the state of things in production. When your PR is ready, you add it to the Merge Queue in ShipIt. The idea behind the Merge Queue is to control the rate of code that is being merged to master branch. In the busy hours, we have many developers who want to merge the PRs, but at the same time we don't want to introduce too many changes to the system at the same time. Merge Queue limits deploys to 5-10 commits at a time, which makes it easier to identify issues and roll back in case we notice any unexpected behaviour after the deploy.

We use a browser extension to make Merge Queue play nicely with the Merge button on GitHub:

Both Shipit and kubernetes-deploy are open source, and we've heard quite a few success stories from companies who have adopted our flow.

#BuildTestDeploy #ContainerTools #ApplicationHosting #PlatformAsAService

0 views0
Comments
View all 10 discussions

Try It

Visit Website

Adoption

On StackShare

Companies
2.47k
ABBCCC+2467
Developers
23k
NYCLRJ+23029