Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Desktop app distribution made easy (hydraulic.software)
9 points by mike_hearn on Jan 12, 2023 | hide | past | favorite | 3 comments


Conveyor is a new tool intended to make distributing desktop apps as easy as compiling a static website from Markdown. It supports Electron, JVM and native apps, with Flutter coming very soon (it works already, we just need to release the next version with Flutter specific tutorials and such).

As a quick comparison you can look at this tutorial for packaging GitHub Desktop, which is a fairly advanced Electron app that requests special permissions, registers URL handlers for OAuth logins and integrates with the Windows notification center. The config you need is ~120 LOC and that's almost all simple declarative stuff, but you can delete nearly 2,000 LOC vs the Squirrel+Electron Packager based solution:

https://hydraulic.software/blog/8-packaging-electron-apps.ht...

The docs are here: https://conveyor.hydraulic.dev/

It has some unique features vs competitors. We've really focused on usability and being able to quickly release casual apps, not just big projects. To that end it:

• Integrates online updates into your app without any code changes required. You can do updates silently in the background, or force a synchronous update check on every launch like a web app (good for frontends to server-side services).

• Can cross-build and sign packages for every platform from any OS. So you can make signed, notarized macOS apps from Windows or Linux, and signed Windows apps from macOS and Linux, etc. Put another way: make an app quickly, release it from your laptop, everyone can install it.

• Makes self-signing easy if you don't have certificates, for example it generates shell scripts that the user can curl|bash and PowerShell equivalent.

• Makes a download page for you that detects the user's OS and CPU to give them a simple big green button if code signing, or instructions on how to open the app anyway if not.

• Can release and update via GitHub Releases/Actions/Pages.

It's free for open source projects and cheap for commercial projects (about the cost of one day work from an average salaried US developer). Plus it comes with commercial support which our bigger users often find helpful, especially if they're new to the desktop world.


Have you considered adding support for running a service in the background, possibly as the system/root user? Maybe I'm working on one of the very few categories of desktop app that still need that (remote desktop a la TeamViewer). This requirement is one reason I didn't go with MSIX on Windows; MSIX didn't add support for background services until Windows 10 version 20H1 and the corresponding Windows Server version, and I don't know how long it will be until we can drop support for Windows Server 2016.


Registering background tasks, yes, that sounds general enough to include albeit we haven't yet encountered a customer who needs that so there are higher priorities.

Supporting old versions of Windows Server - probably not unless the customer signed a development contract to do that work specifically.

Our goal is to open up desktop development to people who previously wouldn't have considered it. For example if you have a mobile app and are considering bringing it to the desktop, today you'd probably have to write a totally separate version of your UI as a web app. That's sort of duplication is very expensive. If desktop development is easy then you can use Jetpack Compose, KMM, Flutter, etc to lightly adapt your mobile code and develop far faster. Another example: you can write apps that connect directly to their backends e.g. an RDBMS, without needing complex/expensive server side load balancing and the whole REST/JSON/SQL glue layer.

That's why we've really focused on ease of use and cross-platform support. You write a tiny config file that points at your build artifacts, run `conveyor make copied-site` and you're done: a release has gone out for every supported platform and your clients will start to update.

But if you have a Windows-specific app and a solution that works for you already, then I'm not sure Conveyor has much to add.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: