a longer-term investigation/project
Context:
The Kinopio desktop apps are provided by the todesktop.com service which builds electron apps from a URL for all desktop platforms (windows, linux, mac) and signs them (for mac, windows). Building an electron app yourself is super easy, but building it for other platforms and signing it for distribution (especially on windows) sounds like a nightmare that I’m happy to abstract.
It includes niceties like
- using the page title as the window title,
- opening kinopio urls in the same window and external links in the default browser (much like the iOS app does).
- cmd-t to make tabs in a window, cmd-n to spawn new windows
because the apps are thin wrappers that have no app specific logic, I almost never need to build new versions of the app. I probably build it twice a year – it’s mostly a set it and forget kind of thing.
I think todesktop’s support does a good job. And as a company/service I think it’s pretty good.
Issue:
The problem is that electron is bloated and inefficient. IRL this isn’t a major problem on my macbook M1, but after playing around with the new macOS safari ‘add to dock’ feature which creates a local (unsigned) native webkit wrapper, I think especially on slower computers the difference is noticeable.
Using activity monitor to look at the quantitative differences reveals some pretty drastic differences (5x - 2x resource usage deltas):
The actual app size is 3-5mb on webkit vs 70mb on electron too.
Todesktop has told me that they have no plans to use electron. It also costs 60$/mo (because I’m grandfathered on a cheaper plan).
Investigation
Can I replace todesktop and provide a better desktop app? i.e. Is there a way to build and sign native desktop builds myself in a way that’s easy to maintain?
The closest I’ve found is Tauri (https://tauri.app), combined with a special github action (Cross-Platform Compilation | Tauri Apps) so that github’s servers build native binaries for all platforms.
Questions
- are all browser features (eg canvas, localstorage) supported by tauri?
- what’s the cert process like and how much does it costs? (x.com recently went through this, we could ask him if needed)
- I’ve never used github actions, what are the downsides and cost of using github actions?
- Can i replicate the same basic features of the electron app in tauri? How much control over the window do we get?
If anyone has any experience with Tauri, plz let us know how it was for you~