Speed, scalability, cost, and security should all be considered when choosing a cloud service provider, as these variables have a huge impact on the success of your application. As a result, it’s critical that you put in a lot of effort in determining which one is best for you.
In this post, we will be comparing one of the most popular cloud service providers, Heroku, with a relatively new and fully free alternative, Deta. We will be exploring the services and features that both platforms offer, their pricing model, as well as their developer experience — i.e., the experience of hosting an application on these platforms.
Heroku is a cloud platform as a service (PaaS) initially founded by James Lindenbaum, Adam Wiggins, and Orion Henry in 2017. The platform was at first developed to only support projects created with the Ruby programming language, but since its acquisition by Salesforce in 2010, the platform has added support for multiple programming languages, including ​Java, Node.js, Scala, Clojure, Python, PHP, and Go.
Heroku provides a range of tools and services for easily scaling and deploying your application. Some of these include:
Almost every cloud service provider has a unique name for their cloud container; Heroku’s is Dyno.
Dynos are the fundamental components of any Heroku application. They are segregated virtual Linux containers that provide all of the CPU, memory, and operating system resources required to run your application.
Heroku also eliminates the stress of configuring hardware resources and virtual machines for your applications. Instead of having to worry about hardware management, you can simply publish your app to Heroku and the platform will package all of your app code and dependencies to dynos.
Heroku also allows you to extend your project with a variety of add-ons, which are extra cloud services provided by Heroku and third-party developers to add more functionalities to your application, such as caching, data-store (including support for Postgres, MongoDB, and MySQL, among others), event scheduling, logging, and many others.
Another intriguing feature offered by Heroku is the operational experience platform, which allows you to focus on maintaining the reliability of your application while offering an excellent user experience.
This platform helps with monitoring the health of your application, verifying its responsiveness, and generating proactive alerts on request failures, even before your users see them.
Heroku offers a generous free dyno plan, which includes a custom domain and a free 512MB RAM provision. However, your application will sleep after 30 minutes of inactivity. This means that if a request is not sent to your application or its URL is not visited every 30 minutes, the application will sleep, and the next request will take up to 10 seconds to load.
Every other plan varies from $7 to over $500 per dyno per month, depending on the requirements of your project. For more information, check out their pricing page.
The process of hosting your application on Heroku is fairly simple. One option is to set up a CI/CD pipeline with Heroku and your project development platforms, such as GitHub or GitLab; another option is to use the Heroku CLI, which is an even faster way to create new projects as well as manage all of your previous projects directly from your command line.
With the Heroku CLI, you can also simply search and add any of the add-ons available on their marketplace to your project, and even test your project locally before deploying it for public access.
Deta — “the cloud for doers and dreamers” as mentioned on its home page — is a relatively new and fully free cloud service provider. It offers a developer-friendly interface that allows you to deploy your program to the cloud in a matter of seconds. Although the platform currently only supports hosting Node.js and Python projects, support for additional programming languages in the future will not be surprising.
Deta-hosted apps, like Heroku’s Dyno, are called micros; this is a sandboxed Linux virtual machine with over 128MB of RAM for each process execution, as well as a read-only file system with up to 512MB of storage space.
Unlike Heroku, which only allows you to run up to two free dynos, you can create an unlimited number of micros on Deta. However, the size of your application source code and its dependencies cannot exceed 250MB.
Micros currently only supports Node.js and Python. It’s also worth noting that older versions of both languages aren’t supported; this may change in the future, but the following versions are currently supported:
Deta isn’t set up to operate with relational databases like Postgres or MySQL, so the team developed their own secure NoSQL database designed specifically for applications hosted on their platform.
Deta Base is a fast and scalable NoSQL database that prioritizes end-user convenience. It has a user interface as well as an SDK that allows you to manage and query records in your database. The database is available as a Javascript, Python, and Go SDK, and the syntax is rather simple. Here’s an example of how to insert and delete records from the database:
const { Deta } = require('deta'); // Project key retrieved from deta dashboard const deta = Deta('your-project-key'); // Connect to or create a new 'users' database. const users = deta.Base('users'); // Add new user to the database. users.put({name: "Elijah", state: 'Lagos'}) // delete user with key 'one' const res = await db.delete("one")
Deta Drive, which is a secure and scalable file storage solution, is another service offered by the platform. It’s quite similar to Deta Base, with the exception that Deta Drive focuses on file/asset management, such as images, videos, and other types of media, whereas Deta Base focuses on data management. All accounts are limited to 10GB of storage, which is a fairly generous offer considering that it is free, and all files stored on the drive can be managed directly from your dashboard or programmatically via their SDK.
Unlike Heroku, Deta offers all of its services for free, and you don’t need to provide any credit card details or other sensitive payment information to get started.
Deta, like Heroku, has its integrated CLI for managing all of your existing projects or creating new ones. Unlike Heroku, Deta currently does not support CI/CD, which means you can’t sync your GitHub or GitLab project to Deta to reflect new changes as they’re pushed.
Throughout this article, we’ve compared Heroku, one of the most popular cloud service providers, to Deta, a new and completely free option. Both platforms provide excellent services.
However, for the time being, Deta is faster to get things up and running, while Heroku should be considered for enterprise apps. Also, because Deta is still relatively young, we should expect a lot of intriguing updates in the future.
Install LogRocket via npm or script tag. LogRocket.init()
must be called client-side, not
server-side
$ npm i --save logrocket // Code: import LogRocket from 'logrocket'; LogRocket.init('app/id');
// Add to your HTML: <script src="https://cdn.lr-ingest.com/LogRocket.min.js"></script> <script>window.LogRocket && window.LogRocket.init('app/id');</script>
Hey there, want to help make our blog better?
Join LogRocket’s Content Advisory Board. You’ll help inform the type of content we create and get access to exclusive meetups, social accreditation, and swag.
Sign up nowExplore use cases for using npm vs. npx such as long-term dependency management or temporary tasks and running packages on the fly.
Validating and auditing AI-generated code reduces code errors and ensures that code is compliant.
Build a real-time image background remover in Vue using Transformers.js and WebGPU for client-side processing with privacy and efficiency.
Optimize search parameter handling in React and Next.js with nuqs for SEO-friendly, shareable URLs and a better user experience.