Creating a custom builder allows you to control what buildpacks are used and what image apps are based on.
Creating a custom stack allows you to configure the base images for the build-time environment for your builder and the run-time for your application.