App Platform is a Platform-as-a-Service (PaaS) offering that allows developers to publish code directly to DigitalOcean servers without worrying about the underlying infrastructure.
App Platform can either automatically analyze and build code from your GitHub, GitLab or public Git repositories and publish your application to the cloud, or publish a container image you have already uploaded to DigitalOcean Container Registry or Docker Hub. It also has lifecycle management features, vertical and horizontal scaling, push-to-deploy support, introspection and monitoring features, built-in database management and integration — everything a developer needs to get code live in production.
App Platform has three pricing tiers:
If your dynamic app has static site resources, all of them will be deployed at no additional charge on the Basic and Professional tiers.
An app is made up of one or more resources like web services, databases, or workers. When you run an app, we deploy an instance (i.e., a container) for each of the resources. The table below shows the monthly pricing per container and the available container sizes for the Basic and Professional tiers.
|CPUs||RAM||Basic Price||Professional Price|
|1 shared||512 MiB||$5.00 per month||-|
|1 shared||1 GiB||$10.00 per month||$12.00 per month|
|1 shared||2 GiB||$20.00 per month||$25.00 per month|
|2 shared||4 GiB||$40.00 per month||$50.00 per month|
|1 dedicated||4 GiB||-||$75.00 per month|
|2 dedicated||8 GiB||-||$150.00 per month|
|4 dedicated||16 GiB||-||$300.00 per month|
Containers and static sites (service, worker, static site, and job resources) are billed by the second, starting at a minimum of one minute. Databases (both development and production) are billed by the hour, starting at a minimum of one hour.
You can learn about what operations count towards bandwidth usage on the billing page.
If you need more resources than what is included in the Starter, Basic, and Professional tiers, then the following prices apply.
Additional development databases are $7.00 per month per 256MB database. Additional outbound data transfer is $0.10 per GiB extra in a month.
You can view the pricing for DigitalOcean Managed Databases, Spaces (object storage), and DigitalOcean Functions on the pricing page.
You can deploy App Platform apps to the following regions:
|Static Site||◆||◆||◆||⬖ Cloudflare CDN only||⬖ Cloudflare CDN only||◆||⬖ Cloudflare CDN only||⬖ Cloudflare CDN only|
Learn more about regional availability.
App Platform is ideal for developers that want to focus on shipping code, and prefer the simplicity of linking their GitHub, GitLab, public Git repository, or container registry to App Platform and letting DigitalOcean build and deploy their app in the cloud.
You can provide a Dockerfile for DigitalOcean to use in the build process, provide an already-built container image, or let us inspect the code and automatically build the app for you. From there, apply the proper settings so that the build runs (such as routing details, custom domains, and environment variables) and add a database to your solution in the user interface.
|Build and deploy static assets||■||■||■|
|Build and deploy dynamic apps
(e.g. Node.js, Python, Go, Ruby, PHP, Docker)
|Continuous deployment from Git repository||■||■||■|
|Automatic SSL/TLS certificates (HTTPS)||■||■||■|
|Bring your custom domain||■||■||■|
|Global CDN for performance||■||■||■|
|Unlimited team members||■||■||■|
|Roll back apps||Most recent successful deployment||Ten most recent successful deployments|
|CPU||Shared||Shared or dedicated|
|Auto OS patching||■||■|
|Outbound transfer||1 GiB||40 GiB||100 GiB|
App Platform allows you to hook up your source code repo and deploy using a cloud-hosted build system that automatically detects the needed environment to run your app.
App Platform automatically downloads and installs any necessary frameworks at build time for supported environments. You can try our sample applications to see App Platform’s auto-detection and cloud builds in action.
App Platform apps can be scaled horizontally (adding more instances that serve your app), and vertically (beefing up the instances with more CPU and memory resources), at any time, by simply visiting your app’s deployment in the dashboard. For details, see the scaling instructions in the Quickstart
Functions are blocks of code that run on-demand in response to requests. You can use functions to build APIs to power your app backend along with a static site or a containerized web application. The infrastructure to run functions and their execution environment are managed by App Platform, and will automatically scale with demand.
While you can control the scaling of your app, manage the individual services that comprise your app, and integrate databases using App Platform, that may not be enough. App Platform is optimized for ease of code deployment rather than deep customization of the underlying infrastructure. Teams that require more control over their production environment and the design and behavior of their infrastructure may prefer one of our other two compute options:
DigitalOcean Kubernetes gives users control of a managed Kubernetes cluster that can run their container-based applications. It supports private registries, autoscaling, and push-to-deploy (through GitHub actions). It also provides a DigitalOcean-hosted instance of the Kubernetes dashboard for each cluster, and replaces the concept of “master nodes” with a node pool that manages capacity for you, resulting in a Kubernetes experience that is significantly simpler than the native experience.
You can build your own infrastructure solution that uses Droplets (Linux based virtual machines) for compute capacity. Common techniques and workflows for configuration management tools like Terraform and Ansible are covered in the Navigator’s Guide. You can also get a sense of how the various products work together by reading the Solutions guides.
The local filesystem on the host instances running App Platform containers is ephemeral and limited to 2GiB. When deployments happen or containers are replaced, the local disk storage will be LOST and not recoverable. To use App Platform, you must re-implement or reconfigure your app to use other forms of persistent storage such as Spaces or Managed Databases. The local disk should only be used as temporary storage. Filling the disk to capacity will cause the container to be detected as unhealthy and replaced.
App Platform can only integrate with GitHub repositories, GitLab repositories, or public Git repositories over HTTPS. Support for other source providers is planned.
App Platform does not support block storage volumes.
Your dev database permissions will not allow you to create databases; instead you will need to use the default database.
App Platform applications do not have a persistent IP address.
Configuration changes that result in a redeployment of your app will not also trigger a pull of the latest source code from your repo. This is by design.
High availability (HA) is only supported for Professional apps when running two or more containers so that there is a failover for App Platform’s load-balancer to use. If you require HA when using Starter or Basic apps, you must upgrade your app to the Professional tier.
App Platform’s engine support for dev databases is currently limited to PostgresSQL, but you can create a PostgresSQL, MySQL, Redis, or MongoDB managed database with DigitalOcean for use in your app.
Git submodules that reference SSH path style repos fail to build. You will need to replace SSH submodule links with HTTPS.
Private Git submodules may fail to build. If you attempt to reference private git submodules that are not accessible via the authenticated GitHub account you have connected, builds will fail. You must have your private git submodules stored in the GitHub account you have authorized App Platform to use.
Browsers aggressively cache redirects, and as such you may need to clear your cache and hard refresh to see changes in your redirect configuration.
Currently, App Platform does not support VPC. All connections from apps to other services running in DigitalOcean occur over the public network.
App Platform does not support rolling back to a previous deployment for Starter tier apps. Upgrade to Basic or Professional tier to use this feature.
Functions are blocks of code that run on demand in response to requests. DigitalOcean Functions let developers execute their code on DigitalOcean without managing compute resources like Droplets or Kubernetes clusters.
An opt-in beta of build performance improvements has been added. This functionality leverages kata-containers technology for improved speed, efficiency, and compatibility. See How to Enable Performance Improvements Beta for more information.
We have updated the default version of Python in the Python buildpack has been updated from 3.9.9 to 3.10.4. You can configure the Python version used at runtime by specifying a
runtime.txt file at the root of your source code. For more information and configuration options, see the Python Dev Guide.
You can now add new resources and databases when you create a new App Platform app, instead of adding only to existing apps. The new app creation workflow can now detect multiple app resources.
For more information, see the full release notes.