Ask HN: Biggest pain points for shipping desktop apps?
I work on a tool to make deploying apps outside the browser as easy as in-browser [1]. So far we have attacked some common pain points, and are now looking at what might come next. Already done:
• Multi-platform CI is a pain and expensive, fixed (you can release from your dev laptop or a cheap Linux CI worker).
• Lots of work on code signing usability like making it CI compatible (cloud signing services), self signing, notarization from non-Macs, high quality error messages etc.
• Lots of work on usability in general.
• Web-style updates that apply synchronously on start, or silent background updates.
• Delta updates automatically without any additional workflow steps.
• Automation of misc tasks for small apps like generating a download HTML page, uploading the results, etc.
Some ideas we're kicking around for future improvements:
1. Ability to update apps whilst they're running.
2. Handle interaction with certificate authorities for you, so there's no need to do that yourself beyond responding to ID verification requests.
3. Signing for you if your app fits inside a sandbox.
4. Stream app content instead of it being downloaded all at once.
5. Be able to re-use pre-existing files from other apps to reduce download sizes (for macOS; this already works on Windows).
6. More formats for Linux (but which? flatpak? snap?)
What other things might be useful?
The wider vision here is to steadily chip away at the sources of friction that push people towards running only in the browser, allowing devs to build apps that fully utilize the hardware, programming languages, frameworks and operating systems that are out there. Today the incentive to innovate in regular computing form factors is significantly hampered by the fact that nobody will actually use anything you add, because browser makers won't be willing to export it to JS. Mobile has avoided this issue but there's no equivalent for the platforms where work gets done. Whilst the tool supports Electron well, it also supports any other kind of app, so those of you who want to experiment with making UIs in pure Rust or any other approach can go wild and easily ship whatever you produce.
[1] See https://hydraulic.dev/ and for the docs, https://conveyor.hydraulic.dev/