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