App Platform

What is App Platform?

App Platform will automatically analyze your code on GitHub, create build artifacts (in the form of containers), and publish your application to the cloud. 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 their code live in production.

Try it Now! Read the Quickstart Browse the Samples Learn the Concepts

Build and deploy your app in the cloud directly from GitHub with App Platform.

When to Use App Platform

App Platform is ideal for developers that want to focus on shipping code, and prefer the simplicity of linking their GitHub repository to DigitalOcean and letting DigitalOcean build and deploy their app in the cloud.

Developers can provide a Dockerfile for DigitalOcean to use in the build process, or let DigitalOcean inspect the code and automatically build the app themselves. From there, it's a matter of applying the proper settings so that the build runs, such as routing details, custom domains, and environment variables, and adding a database to your solution in the user interface.

When Not to Use App Platform

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:

  1. 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.

  2. You can roll 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.

Plans and Pricing

App Platform has three pricing tiers.

  • Starter: Free. Good to try App Platform and deploy static sites.
  • Basic: Starts at $5/month (for one container). Good for prototyping your apps.
  • Professional: Starts at $12/month (for one container). Use to deploy your production apps.
Feature Starter Basic Professional
Build and deploy static assets ☑️ ☑️ ☑️
Build and deploy dynamic apps (e.g. Node.js, Python, Go, Ruby, PHP, Docker) ☑️ ☑️
Continuous deployment from GitHub ☑️ ☑️ ☑️
Automatic SSL/TLS certificates (HTTPS) ☑️ ☑️ ☑️
Bring your custom domain ☑️ ☑️ ☑️
Global CDN for performance ☑️ ☑️ ☑️
DDoS mitigation ☑️ ☑️ ☑️
Unlimited team members ☑️ ☑️ ☑️
Application metrics Hourly Hourly Per-minute
CPU Shared Shared or dedicated
Auto OS patching ☑️ ☑️
Vertical scaling ☑️ ☑️
Horizontal scaling ☑️
High availability ☑️
Outbound transfer 1 GiB 40 GiB 100 GiB
  • You can build and deploy 3 static sites for free on the Starter tier. Every additional static site will be charged $3/mo.

  • If your dynamic app has static site components then all of them will be deployed at no additional charge on the Basic and Professional tiers.

Container Pricing

An app is made up of one or more components like web services, databases, workers, etc. When you run an app, we deploy an instance (container) of each of the components. The table below shows the monthly pricing per container, and illustrates the available container sizes for the Basic and Professional tiers.

CPU Type CPUs RAM Basic Price Professional Price Basic Slug Professional Slug
Shared 1 512 MiB $5 basic-xxs
Shared 1 1 GiB $10 $12 basic-xs professional-xs
Shared 1 2 GiB $20 $25 basic-s professional-s
Shared 2 4 GiB $40 $50 basic-m professional-m
Dedicated 1 4 GiB $75 professional-1l
Dedicated 2 8 GiB $150 professional-l
Dedicated 4 16 GiB $300 professional-xl
Tip
Remember that the ultimate cost of running a component is determined by the container size multiplied by the number of containers.

Add-on Pricing

If you need more resources than what is included in the Starter, Basic, and Professional tiers, then the following prices will apply.

Product Quantity Price/mo
Managed Databases Varies Pricing details
Development Database 1 (512 MB) $7
Additional outbound transfer 1 GiB $0.10
Object storage (Spaces) Varies Pricing details

Regional Availability

App Platform apps can be deployed to the following regions:

  • Amsterdam
  • Frankfurt
  • New York

Features

Cloud-Hosted Builds

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.

Horizontal and Vertical Scaling

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

Limits

  • The local filesystem on the host instances running App Platform containers is ephemeral. 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.

  • App Platform can only integrate with GitHub repositories. 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, or Redis managed database with DigitalOcean for use in your app.

  • Git submodules that reference SSH path style repos fail to build. Users 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.

  • App Platform apps cannot be routed through your own Cloudflare account and must instead use App Platform's built-in CDN functionality.

  • 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.