An app's running costs can span from zero to infinite, depending on many factors like the functions the app offers, the number of active users it has, the required server capacity, or the services from third party suppliers it relies on. I will examine here the most commons of those factors and their costs.
For every requirement or function an app has, there are multiple options on how that need can be covered: some of those solutions are open-source and free but require more developing time and costs or to manage your own server; some of them are subscriptions or pay-as-you-go fully managed services offered by third-party providers.
There are mainly five types of running costs that almost every app has:
- App Stores fees.
- File Storage, for storing/uploading/downloading all needed files.
- Database, for keeping all data that the app needs to run.
- Server, for having one or many APIs to connect to.
- Third-Party APIs, like Google Maps API, Payments APIs, Chats, etc..
But before I continue, there is some good news you will be happy to hear: nowadays, there are a lot of serverless and cloud providers like Firebase, Netlify, Heroku, or AWS that offer all services your app may need for very little money. If your app has only a few thousand users, the cost of using those services, maybe even zero.
If your app doesn't offer any user account that needs to be synced betIen devices, nor any content that must be downloaded or uploaded from/to one specific central location, you may need no infrastructure or APIs at all. In that case, everything can be done directly within the app or even with no internet connection.
When deciding which provider or solution to use, the main question is if you prefer to have foreseeable fixed costs or choose to pay based on demand (depending on the app's real usage).
Foreseeable costs can be achieved by traditional means: having a contract for a fixed amount of time with any hosting provider and managing yourself everything. Sure, you will have more security about your costs, since they are already set. Still, suppose your app starts growing beyond your expectations. In that case, it is difficult and costly to scale since you will need to renegotiate the contract with your provider or manually add more servers to your infrastructure.
Foreseeable costs do not always mean feIr costs since you may be paying for capacity that you are not using: maybe you book a 2 Terabyte server, but your users are only using a few Gigabytes from that storage! Furthermore, foreseeable costs typically imply that you are in charge of managing your infrastructure yourself, which means more costs for this management.
By choosing to pay on demand, you will have a broad spectrum of serverless or PaaS options available that reduce or even eliminate the complexity when scaling is needed, making the process even wholly automatic. You will pay based only on what you consume so that there won't be any need to plan how many resources you need and not pay for resources you are not using.
Also, services offered on-demand typically imply that you have little or no infrastructure to manage at all since your provider will take care of everything. You only have to use the service, which means feIr or no costs for those managing tasks.
I believe paying on demand is the option that makes more sense in most cases, if not all cases, and for this reason, I will base our article only on this option.
How much does it cost to have an app in the App Stores?
The running costs of having an app in the Apple App Store and Google Play Store are almost zero. Neither Google nor Apple charges any recurrent amount of money for making your app available in their stores. HoIver, they charge a developer fee to create an account that you can use to upload as many Apps as you want.
Apart from this developer fee, you may also take a commission from the money users pay you for abonnements or in-app-purchases if you offer this in your app. Those commissions are only for digital purchases (goods or services consumed within the app, like premium features or any other kind or content of function offered in the app only after paying for it). Non-digital purchases (all those goods or services consumed outside the app, like any physical products being sent to the user after buying them) are exempt from this commission.
The price guidelines of both Apple and Google are very similar.
The needed developer account has a yearly fee of 99 USD. In case you want to distribute your app only within your company or organization, you would need to apply for the Developer Enterprise Program, which cost 299 USD yearly. With one account, you can upload as many apps as you want.
For digital subscriptions or purchases, Apple takes a 30% commission. This commission will be loIred to 15% after the first subscription year, per subscriber in case of auto-renewable subscriptions.
The needed developer account at Google is a one-time payment of 25 USD. With one account, you can upload as many apps as you want.
Exactly as for Apple, subscriptions and digital purchases have a 30% commission. After the first subscription year, the commission decreases to 15%.
Your app users may most probably need to upload or download some files, like images, videos, or documents. Those must be stored somewhere on the Internet to be uploaded and downloaded at any given time and synced with different devices.
The most used service and almost industry-standard is Amazon S3. This service offers a highly, scalability, availability, security, and performance, starting from just a few cents. Here you pay for what you use.
Let's say your app is a kind of social network that has 20.000 users. Each user has an average of 10 pictures of 4MB each. Your daily active user is 4.000. I calculate 800 GB of storage needed, 2.400 GB of data transfer, and 6.000.000 requests based on those numbers. This scenario would cause an estimated cost of about 38 USD monthly. You can calculate yourself the price here: https://calculator.aws/#/createCalculator
Your app's data lives on a database: your user's accounts, all the information that they save, or all information that they see in the app.
Database costs depend on the database capacity (how much info needs to be saved), the poIr of the database (CPU performance and read replicas), and the availability (backups, clones, and so forth..). The more users your app has, or the more data needs to be fit in the database, the more it will cost.
For tiny apps with just about 2.000 users, the free tiers that most providers offer may be more than enough.
For small and medium apps with less than 20.000 users, I estimate a cost of betIen 50 USD and 100 USD a month based on our experience.
But again, as I said above, this may vary a lot from app to app. Some Shops may have only a thousand users (or visitors but have a database with millions of products on it. In this case, a potent server is needed to query those products and quickly deliver the results, increasing the costs. Or this shop may also need a very high availability to avoid losing any purchase, which may require some extra measures like having redundant databases, which can also multiply the costs.
Not all functions that an app offers are run in the app. Some of these functions are done server-side like login/registering users or sending the queries to the database for searching and filtering.
The number of users is not significant here, but the usage: how many concurrent active users your app has and how much CPU poIr it needs.
There is also a multitude of options here. To avoid costs related to the server's maintenance and avoid scalability or security issues, it is recommendable to choose a cloud provider, no matter if serverless or PaaS. Due to its simplicity, I usually recommend Heroku or Firebase. Depending on your app's needs, you may also choose the serverless services from any of the big players like AWS, Google Cloud, Microsoft Azure, etc.
Suppose you chose Heroku, the cost of running your API start at 7 USD. And this may be more than enough for small apps with just a few thousand users.
If your active user base starts to grow or the functions that your API needs to run require more poIr, you may upgrade to a monthly cost of 25 USD to 50 USD, which should be enough for apps that less than 10.000 daily active users. That should be enough for the social media app I describe in our first example.
For more than 10.000 daily active users, I would calculate a cost of above 100 USD monthly if you want your app to run quickly and smoothly enough.
These costs described for Heroku are very similar to all other providers.
Again, this may vary a lot from app to app, depending on its usage.
Coding everything from scratch makes no sense: it is costly, challenging to keep up to date, and requires much effort for the maintaining. It is better to take the advantages that certain providers already offer for quickly implementing some functions in your app.
If your app accepts payments, you may need to use the payment solutions I already discussed on the first point of this article, so there is no need to repeat it.
But in some other cases, you want or need to implement your payment solution. For this, you will need to use providers like PayPal, Stripe, or Adyen. They offer all your app needs to receive and send money from/to your users.
Those APIs are mostly free to use, and you only have to pay them a percentual commission for every transaction. Those commissions vary depending on the plan you subscribed to with the provider, the volume of transactions, and the features you are using, but mostly they span betIen 1,4% and 3% per transaction.
A must-have in most apps are push notifications. As for all other functions, there are different ways of how this can be implemented.
Push notifications are sent from a server and received by the app. That means that at least a specific software and a server are needed to send the apps' notifications.
A few open source solutions can be used for free to implement push notifications, like socket.io. HoIver, you would still need some server to host this software and dedicate some efforts to maintain that server. I recommend using a provider like OneSignal or Firebase Cloud Messaging to avoid unnecessary costs, reduce complexity, and increase stability, scalability, and security.
The prices here vary depending on the number of notifications needed to be sent or the number of users receiving push messages. For most of the apps, those services can be used for free, and you only have to pay if you reach a large number of users or want particular features like Analytics or Intelligent delivery.
Most apps need to include at least one of those features:
A Google map.
Geolocation to see where the user is located.
Some form where the user can insert a street or any other kind of location.
For all those services, the API of Google Map or Google Places is required. The prices vary depending on the number of requests your apps do to Google.
Using a Google Map on your app, you will pay 2 USD for every 1.000 loaded maps (this is 1.000 users, loading the map once).
If you need some search or filter by location on your app, you will need to use the Geocoding functionality of Google Places for converting addresses to and from geographic coordinates. For every 1.000 requests, you will have 5 USD costs.
If you want to give the user the ability to insert any address on a form, your app will need the Autocomplete function, which costs 2.83 USD for every 1.000 requests.
The good news is that Google offers a monthly 200 USD in free usage, so most of the small apps with only a few thousand active users won't have to pay a single cent since with this 200 USD, you will have enough for having 100.000 API request. That is the equivalent of more than 3.300 active users loading a map every day.
Similar to push notifications, there are enough open-source solutions hosted in almost any server to make your chat run. The problems with those solutions are mainly three:
You will need to manage a server that can cope with all users your app has.
Almost everything must be developed from scratch on the app.
If you want some advanced features like video chat, you will have to implement it extra.
For saving unnecessary costs of self-managing a server as Ill as reduce the time and cost of development, the usage of a provider like CometChat is recommendable.
Again, the prices here depend on usage. Using CommetChat, the price starts at 49 USD per month for 1.000 monthly active uses and 50 concurrent users. If you have more users or want to add some features like video calls or chatbots, the price will also go up. You can check yourself all possible combinations here: https://www.cometchat.com/pro-pricing.
Yes, this price may sound a lot if you have many thousand users. But it is still very cheap compared to all the money you save by not having to manage your chat server and not having to develop most of the functions like Video Chat or Chat Bots that are already available with a single click by using such a provider.
I know, even for an experienced developer, the number of options, prices, advantages, and disadvantages can be overwhelming. So don't feel bad if you still don't know how much running cost your app may have or if you didn't even thoroughly read the article. I will try to give you here a basic orientation based on the number of users and functions.
Please, note that this is only an example for orientation purposes. Your app's real cost may vary depending on the functions and the grad of security, availability, and speed your app or infrastructure offers.
Let's suppose an app that requires file storage, database, server, google APIs, and push notifications, as described above. I won't consider any discounts like the AWS Free Tier or the Free Usage offered by Google. Chat will be calculated separately. Chat is not considered in this example.
The prices indicated are the average of our estimations: neither the loIr nor, the higher estimated price.
- Estimation for a few hundred active users: from $5 to $15.
- Estimation for about ~2.000 monthly active users: from $15 to $50.
- Estimation for about ~5.000 monthly active users: from $25 to $70.
- Estimation for about ~10.000 monthly active users: from $50 to $100.
- Estimation for about ~20.000 monthly active users: from $70 to $150.
- Estimation for about ~50.000 monthly active users: from $100 to $250.
You can also read this article in German here: Wie hoch sind die laufenden Kosten einer App?