Skip to main content

Buildpack Stacks

A buildpack stack defines the set of buildpacks used to build your application. Deploio supports two stacks: heroku (the default) and paketo.

Heroku Stack (Default)

The heroku stack is the default and uses exclusively unchanged Heroku Cloud Native Buildpacks. This ensures strict compatibility with standard Heroku CNB behavior and provides frequently updated runtime versions.

Static Sites

Automatic language detection for static sites is not available on the heroku stack, because that detection is handled by a nine-managed buildpack. When deploying a static site with the heroku stack using nctl, you must explicitly set the language:

nctl create application my-static-site \
--buildpack-stack=heroku \
--language=static \
--git-url=https://github.com/your-org/your-repo

Paketo Stack

The paketo stack uses a combination of Paketo buildpacks, nine-managed buildpacks, and Heroku Cloud Native Buildpacks for some languages. This stack includes custom buildpacks that provide automatic language detection, including for static sites.

Choosing a Stack

The heroku stack is a good default for most applications. Consider switching to the paketo stack if:

  • You need automatic language detection for static sites, which is provided by a nine-managed buildpack not available in the heroku stack.
  • You need the specific features provided by Paketo buildpacks.

Configuring the Buildpack Stack

Use the --buildpack-stack flag when creating or updating an application:

nctl create application my-app \
--git-url=https://github.com/your-org/your-repo

To switch an existing application between stacks:

nctl update application my-app --buildpack-stack=heroku