Releases for app developers

Good software deserves a place to land.

Ship desktop apps, CLI tools, and paid software with a page for every version, stable downloads, and easy installs.

Built for where you ship.

Publish from your terminal, through the API, or from CI.

CLI

Push your build.

rls push 1.0.0 \
  dist/grove-macos.tar.gz \
  dist/grove-windows.zip
Publish with the CLI

API

Build publishing into your own tools.

curl --fail-with-body \
  https://release.garden/api/projects/grove/uploads \
  -H "Authorization: Bearer $RG_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"version":"1.0.0","files":[
    {"filename":"grove.tar.gz","byte_size":1048576}
  ]}'
Publish with the API

CI

Publish when your build finishes.

- name: Publish a release
  env:
    RG_API_KEY: ${{ secrets.RG_API_KEY }}
  run: |
    rls push "$GITHUB_REF_NAME" \
      dist/grove-macos.tar.gz \
      dist/grove-windows.zip
Set up CI publishing

Built for your customers.

Keep your source on GitHub or wherever you work. We handle the release pages, install scripts, and licensed downloads you’d otherwise build around a storage bucket.

Plus / private projects

Customer licenses

Issue and revoke keys for private releases. Offer lifetime updates or set an update cutoff. Customers keep access to eligible versions, without an account.

Learn about licenses

Free

Generated installers

Generate install scripts for your software on macOS, Linux, and Windows.

Installer setup

Free

Release channels

Ship to beta, then promote to stable without uploading again. Each channel has its own latest release link.

Using channels

Publish your first release.

Install rls for macOS, Linux, or Windows. Sign in and publish.

terminal

Checking your progress…

INSTALL THE CLI

$ curl -fsSL 'https://release.camp/rls/latest/install.sh' | sh
PS> irm 'https://release.camp/rls/latest/install.ps1' | iex

YOUR FIRST RELEASE

Run the commands in your terminal. We’ll move you along as each step completes.

Publishing to

$ 

Not moving forward?

CLI sign-in needs to open in this browser for live updates. If you’ve finished this step, you can continue manually.

If the CLI printed a different slug, use it here for your release link.

Automate your next release