Reduce Heroku Slug Size

Have you ever seen this error when you tried to deploy to your Heroku app?

Compiled slug size: 300.6M is too large (max is 300M)

You can't deploy but it can be fixed. Here are ways to reduce the slug size.

Clean up the Git repository

Install the Heroku Repo plugin:

heroku plugins:install

Then run:

heroku repo:gc --app your-app-name
heroku repo:purge_cache --app your-app-name

These commands will execute git gc --aggressive (git-clean) and delete the contents of the Heroku build cache stored in your application's Git repository.

Doing this on a recent app reduced my slug size by 100M.

Move some files out of the repo

Move internal design documents (.sketch files) somewhere like Dropbox. Move user-facing media (.mp3, .mpg files) somewhere like Amazon S3.

Ignore some files that have to be in the repo

Follow Heroku's instructions to ignore files such as unit tests with .slugignore.

Remove unused dependencies

Hopefully each Ruby gem in Bundler groups is being used by the app. Do an audit and remove any that aren't used.

Bundle only what you need for the environment

Heroku accepts an environment variable to limit the Ruby gems that it bundles and caches.

heroku config:set BUNDLE_WITHOUT="development:test" --app your-app-name