Getting started¶
Download Start tutorial Chat Forum
Hydraulic Conveyor makes distributing desktop apps as easy as shipping a web app. It's a tool not a service, it generates and signs self-upgrading packages for Windows, macOS and Linux using each platform's native package formats without requiring you to have those operating systems, and it looks like this:
It has integrated support for Electron, JVM and Flutter apps. It's free for open source apps and has simple per-project pricing for commercial apps.
Features¶
- Self-updating packages for every OS, built on any OS.
- Build applications that use the built-in Windows MSIX package manager.
- Windows keeps them up to date in the background.
- Installs and updates reuse data blocks and hard link files, even between apps from different vendors.
- Has everything IT departments need to easily deploy to managed networks.
- Build Mac applications that automatically use the popular Sparkle 2 update framework, without code changes.
- Build apt repositories for Debian/Ubuntu, tarballs for other distros. Integrates with systemd for servers and cron jobs.
- Build applications that use the built-in Windows MSIX package manager.
- Background updates or check-on-launch.
- In aggressive mode your app will check for and apply updates on every launch, without user interaction being required.
- In background mode updates will be downloaded and applied in the background, without disturbing the user.
- Extra support for popular app frameworks:
- Electron
- Benefit from well maintained platform native software updates without relying on Squirrel or any centralized update servers.
- Import config directly from your
package.json
file.
- JVM
- Bundles a JVM from a vendor of your choice, and then uses jlink/jdeps to minimize the size.
- Uses a native launcher that adds useful features.
- Import configuration from Maven and Gradle.
- Flutter
- See the demo app for how to package Flutter apps.
- Electron
- Brainless code signing.
- Sign your Windows/Mac downloads for a better UX, or ignore it and get self-signed packages with a
curl | bash
style install. - You can sign and notarize on any OS.
- You can back up your single root key by writing it down as words on paper.
- Sign your Windows/Mac downloads for a better UX, or ignore it and get self-signed packages with a
- Automatic icons.
- Converts to the platform specific formats for you.
- Renders SVG files to icons with optional macOS-style rounded rectangle masking and gradient fills.
- Generates synthetic icons if you don't supply any.
- Generates download sites.
- Static HTML detects the user's operating system and CPU architecture.
- Release via GitHub releases.
- Pre-made template projects for native C++, Electron, JavaFX (JVM) and Jetpack Compose Desktop (JVM).
- Pierce the abstraction! Cross-platform tooling doesn't mean giving up platform-specific features. Over 120 different settings let you precisely configure your packages, including your:
- Mac
Info.plist
files. - Windows manifests.
- Linux
.desktop
files and package install/uninstall scripts.
- Mac
- No lockin.
- To stop using Conveyor you can just write the scripts and integrations you'd have written anyway.
- It makes standard formats and uses standard or open source update frameworks.
Sample apps¶
Electron: GitHub Desktop¶
This shows how a production-grade Electron app can be packaged using Conveyor, GitHub Actions and GitHub Releases.
Download a Conveyor-ized GitHub Desktop View source
Flutter¶
JVM: Jetpack Compose¶
Download (fully signed) Download (self signed)
This is an open source example app written in Kotlin. It uses Material Design and the Jetpack Compose reactive UI toolkit, which is the new standard Android GUI toolkit and also has a desktop port supported by JetBrains.
JVM: AtlantaFX Sampler¶
Download AtlantaFX sampler View source
AtlantaFX is an open source theme for JavaFX that implements a modern design language using the GitHub Primer color system. The sampler app provides a gallery of the available controls and stylings. It's written in Java with Maven. Read the blog post to learn how this app was packaged.