Heroku vs Qovery
Tags: docker, productivity
Published: 2020-04-15 08:46:30

The first question we always get from developers before trying out our product is - “**What’s the difference between your platform and Heroku?**”. We think it’s very important to answer your questions clearly and this article is meant to be our answer.‍
# At Qovery, applications, databases, storage, and brokers are first-class citizens

Heroku provides three managed services to all customers:
* Heroku Postgres
* Heroku Redis
* Apache Kafka on Heroku

All other integrations are made as third-party, paid add-ons. **They’re not treated on pair with your applications**.

At Qovery, we have taken a different approach. **Applications, storage, databases, and message brokers are treated as first-class citizens**. We treat them all in a uniform way. They have the same pricing and limits of storage, CPU or memory no matter if it's your backend application, MongoDB, PostgreSQL or RabbitMQ. Their configuration is also simplified - connecting your backend to the database is very declarative. **You declare what you need, and we make it available to your application¨¨. This speeds up the development and simplifies the management of services in production a lot.

The list of officially supported services by Heroku is very limited. **Our goal at Qovery is to make any service offered by cloud providers effortlessly accessible in your application**.

![All services provided by Qovery](https://uploads-ssl.webflow.com/5de176c0d41c9b4a1dbbb0aa/5e9577adb13e2d1db1f355cd_tWGR2W5smBgWhewQp0a1j62R3ZopTgaSo_32u6_wOGtbI-GPNrVFo-85pePKtR9s8vAHtCJVRUWZGpCUgIBHl4zBmEnQ6LGE4YYBIqocf7XNMk7ErQgbdsspyRAXW2dzQ5kKwjrH.png)

Here’s an example of how easy it is to add PostgreSQL to your application - just add those few lines of configuration:
```yaml
...
databases:
- type: postgresql
  version: "11.5"
  name: my-postgresql-db
...
```
That’s all - you'll get a managed PostgreSQL to use in your app.

# Qovery is built for teams
One of **the superpowers** of Qovery is the concept of **isolated environments**. Have you ever had a situation when you could not test your changes in a deployed environment because it would block your teammate from testing his own feature? This is a common problem of sharing testing and staging environments. Qovery is a remedy for this issue. **With Qovery, you have the ability to have an isolated environment for each of your developers. This will greatly speed up the development cycle and the productivity of your team.**

![Each branch has its environment](https://uploads-ssl.webflow.com/5de176c0d41c9b4a1dbbb0aa/5e95785219faa716275aa4d1_LqW-Z8aHFfyca7issv1rAA4nEDKb2RlITxzUGEtWWuZ5dHXgS43e73cIljwanDdRfS3S86vm7VoNM7YVimiQXZSi7ur3lX-qbnMFY7dsMjon2pVwe7NFTZlOVFEuTLnFCHlO7AUg.png)

Creating a new remote branch results in a clean, remote environment, where you can freely test your code. These are not empty words - **you get a fully functional copy of your environment. This includes all data, database replication and even traffic mirroring between environments**. This way, you’ll be independent, save your precious time, avoid frustration and introduce fewer bugs to your project. **Having a chance to test new code on a production-like environment before going to production is invaluable**.
‍
All of this happens automatically, without you having to configure anything at all. Every application, database or broker has replicated automagically. **This is the superpower brought to you by Qovery, that other platforms do not provide.**

# Docker, Dynos & language support
Another important difference is the runtime of applications and language support. On Heroku, **the number of supported languages and frameworks is limited**. You can use languages officially supported by Heroku in containers called Dynos. If you need to use something else, you can provide a Docker image. However, the support for Docker containers on Heroku is somewhat troublesome. Using Docker on Heroku requires a lot more effort and configuration than on Qovery. Besides this, Docker containers on Heroku are affected by the same limitations as Dynos, as in fact they're run in Dynos. 

At Qovery, we have taken a different, opinionated approach of running your applications. **Docker integration with Qovery is effortless** - all you have to do is to create a Dockerfile in your repository. **Qovery takes care of the rest - building your Docker image, deploying it and integrating with your Git workflow.**

![Qovery with Docker](https://uploads-ssl.webflow.com/5de176c0d41c9b4a1dbbb0aa/5e958d86b13e2d76fefeecf1_DCKR-QOV.png)

This way, we support all languages and frameworks you can imagine **with minimal effort for you as a developer**. All your applications are built and deployed in the same way, no matter what technology or language you use.

# Different approach to open source and side projects
At Qovery, we highly value passionate developers and open-source. **We provide a generous free tier, in which you can deploy up to three applications (e.g. frontend application, backend application, and a database) and set it up with your custom domain.**
‍
Unlike Heroku, **we never turn your applications off**, even on a free tier! If you’re an author of an open-source project, please contact us - we are glad to give you **up to 100% discounts for running your open source projects.**

[Join the community now](https://discord.qovery.com/)