Hydraulic Blog

Conveyor updates for May

The May 2023 release (v9) simplifies releasing to the Microsoft store, better protects your root key when using a Mac, improves usability in various ways and contains the usual set of bug fixes.

Read more ...

Conveyor updates for March

The March Conveyor update makes it simple to define file associations for every OS, and can automatically release to Amazon S3 and GitHub Releases. It improves the UX of self-signed apps on Windows, adds a new conveyor run command and has many usability upgrades for developers. Let’s dive in!

Read more ...

Deploying apps with JCEF

The Chromium Embedding Framework (CEF) makes it easy to instantiate a Chrome webview inside your C++ app. The same team also provides JCEF which brings that capability to any JVM language. Recently a customer came to us with an interesting request: how exactly do you deploy an app that uses JCEF? There are over 100 million installs of CEF around the world, and now we’ll show you how to add a few more.

Read more ...

GitHub Actions

Our goal at Hydraulic is to make deploying desktop apps as easy as deploying a web app. The new Conveyor GitHub Action makes it simple to get continuous deployment of your app with nothing more than a git push. This is especially useful for apps written in languages that compile ahead of time to native code like C++, Rust or Dart.

The new action takes care of downloading, installing and running Conveyor, as well as caching both the installation and the build cache, so releasing is faster on subsequent runs. Read on to learn how to use it.

Read more ...

In-JAR signing for the JVM

The latest Conveyor update introduces a new solution for an old problem faced by many JVM apps: how to code sign native libraries bundled inside JARs?

Read more ...

Flutter support

You can now easily package and update Flutter apps with Conveyor, a tool that makes desktop distribution as easy as it is on mobile (or easier!). Distributing your Flutter app with Conveyor not only gives you useful features like online updates, but also a really simple config and workflow. Let’s dive in and see just how fast we can create a new app and get it online.

Read more ...

February updates

Our February update is here, with some great new features and usability improvements.

Conveyor can now distribute Flutter apps, draw icons for you if you don’t have them already, do in-JAR code signing to make using native libraries easier for JVM apps, use EV certificates stored in YubiKeys, bundle the Microsoft VC++ redistributables, and catches many common errors.

Read more ...

Packaging Electron apps

Distributing Electron apps with Conveyor has a bunch of advantages and doesn’t take long. Packaging GitHub Desktop lets us see what the configuration looks like for a production-grade app. We’ll also use other GitHub services like Releases, Pages and Actions. The benefits can be seen in the nearly 2,000 lines of code that can be deleted vs the original Squirrel based solution.

Read more ...

December Updates

Christmas is approaching and we have a pile of new features for you to unwrap! Our December update makes it easy to keep your client in sync with a changing server protocol using aggressive updates, Electron support has been improved and you can now easily associate your app with URL handlers, set HTTP headers on URL inputs, upload your site via SFTP and more.

Please note that this release is the last major feature release of the introductory period. Starting in the new year Conveyor will transition to being a normal billed product in line with our announced plans from the start.

Read more ...

Why desktop apps matter

I’ve been meaning to write this essay for a while, but the recent kerfuffle over Chrome killing off JPEG XL pushed me to finally do it. This will be an argument in three parts: firstly that desktops are more important than they’re given credit for, secondly that browsers are poorly serving us on those desktops, and finally a sketch of what can concretely be done about it (which is why we built Conveyor).

Read more ...

October Updates

For the October release we’ve focused on polishing, bug fixes and community awareness. On Windows we improved the appearance of icons in the task bar. We upgraded certificate handling, made it easier to customize the generated download page, fixed some bugs, refreshed the AtlantaFX sampler and integrated Conveyor with the docs for Jetpack Compose. Read on for details.

Read more ...

September Updates

We’ve updated Conveyor with some new features, and in particular better support for Kotlin/Jetpack Compose. With the improved support we’re laying the groundwork for one possible post-web future.

Read more ...

Case study: AtlantaFX

AtlantaFX is a new CSS theme for JavaFX that implements a modern design language using the GitHub Primer color system. JavaFX is an advanced and mature desktop UI toolkit that can be used from any language with a JVM implementation, not just Java. You can of course use JVM-first languages like Kotlin, Scala and for Lispers Clojure (via the cljfx functional/reactive UI library). But in addition, thanks to GraalVM, you can also use languages like Python 3, JavaScript, Ruby, R, and even binary languages like WebAssembly or LLVM bitcode (i.e. any language that can compile to these targets can also access JVM libraries).

You can now download the AtlantaFX sampler app packaged with Conveyor and it’ll keep itself up to date as the project evolves from the current early development stage to full production maturity.

In this article we’ll show how the packages were made and along the way, see how to package JavaFX apps that don’t use Gradle. The packaging was contributed upstream and is now a part of the AtlantaFX project itself.

Read more ...

First update release

Conveyor 2 is out with a huge number of fixes, usability improvements and even a few new features.

It’s been just over a month since we launched Conveyor to the world. Since then we’ve been hard at work fixing bugs, improving the documentation and adding features in response to feedback from the initial wave of users. Before turning to what’s new we’d like to offer a big thanks to our early adopters for their high quality bug reports and suggestions.

Read more ...

Introducing Conveyor

Hello world! Conveyor is a new tool that makes distributing desktop and command line apps as easy as shipping a web app. It generates self-upgrading packages for Windows, macOS and Linux using each platform’s native package formats, you don’t need to have those operating systems to build them, and it looks like this:

It can do all this from whatever operating system you like because it implements all the packaging, signing and Apple notarization logic itself. Drop it into any continuous build system or run it from your laptop. The results will be the same: a simple config file goes in one end, an incremental and parallel build system processes it and out the other end comes a fully fledged repository ready for publishing. Try installing a sample app and see for yourself.

Read more ...

.