bruce965
Professional C# .NET developer, React and TypeScript hobbyist, proud Linux user, Godot enthusiast!
For reference, this is what the “Checking for Updates” page on the Pop!_OS store looks like for me. This icon feels out of place, that’s why I assumed this is a placeholder that replaced the correct icon that went missing due to some kind of minor problem with my installation.
I assumed that’s the “no icon” placeholder for Gnome. I saw it around as well.
Good separation between business logic and UI without effort, cross-platform UI in any language, possibility to turn it into a web-accessible service in the future, great choice of UI frameworks and battle-tested components if you decide to go for a web framework and language.
As an example of a successful software that followed this approach: Synchthing. All versions run a local web service in the background. The Desktop version just opens a browser on the index page. The Android version is a native app that calls the exposed REST API on localhost, bypassing the web UI.
As an example of a much more complex software, albeit not FOSS: EasyEDA. It’s a web software, but it also comes as a desktop app (which I never tried) which I assume is not much more than a frame for the web view.
My recommendation: write the UI with React on Vite in TypeScript, and write the business logic in your general purpose language of choice (mine would usually be C#).
If it makes sense for your software, please consider giving it a web interface and turning it into a localhost-only web-service.
I thought so. Although almost nothing for modern standards, 60MB is not exactly tiny. Sorry about that.
On a different note, a repository is always a good thing imho. If you’d rather not have to worry about the dependency-pull step you can always include the dependencies with your sources, or just limit your code to using features included in the standard library.
JavaScript through Node.js, or TypeScript through Deno if you like typed languages. They both check all your boxes (just check the size of the executables to make sure that it’s what you would consider “small footprint”).
Both languages and runtimes are quite popular, so you will find any answers on StackOverflow.
They are both single-executable with little dependencies, and Deno can also compile your scripts to self-contained executables.
As a bonus, both support the vast and extensive NPM package repository where you can find all sort of libraries for even the most complex tasks.
And they work with your favourite IDE or editor, not just syntax highlighting, but also contextual suggestions.