My Return to Desktop Applications

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • TiddlyWiki

    A self-contained JavaScript wiki for the browser, Node.js, AWS Lambda etc.

  • So true. I love tools like https://tiddlywiki.com/ that *just works* - across platforms, can be shared without problems, and is flexible enough to make all sorts of simple tools without having to use a terminal, add n dependencies and compile things. Please share if you know similar software!

  • Flutter

    Flutter makes it easy and fast to build beautiful apps for mobile and beyond

  • Thanks for the update, although it should be pointed out that that was apparently very recent, as in May 2022. It's not like it's been there and makes my comment that people have been waiting on it inaccurate. I wasn't aware of stable macOS and Linux support, so thanks for pointing it out. As far as I know, Windows was the first to get stable desktop support from Flutter, and that was just at the very beginning of this year. Even now, the official Flutter Desktop webpage links back to that release as "new": https://flutter.dev/multi-platform/desktop

    Flutter still cannot manage multiple windows on desktop, which makes it a no-go for my use cases, and it doesn't look like it's coming anytime soon: https://github.com/flutter/flutter/issues/30701. The original issue has been sitting around for four years.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • solid

    Solid - Re-decentralizing the web (project directory) (by solid)

  • logseq

    A local-first, non-linear, outliner notebook for organizing and sharing your personal knowledge base. Use it to organize your todo list, to write your journals, or to record your unique life.

  • ui-mock

  • There's an attempt to make this work for Rust desktop applications. There's the winit crate, which does cross-platform windowing and event loops. There's egui, for menus and subwindows. There's rfd, for file dialogs, which are special for security reasons. And there's wgpu, for cross-platform 3D.

    I'm using all of these in my ui-mock,[1] which is a GUI for a game without the game. It has 3D graphics with 2D GUI elements on top. I'm using this to shake down all the cross-platform problems for my metaverse client. My own code, which is 100% safe Rust, has no platform dependent code.

    Results are pretty good. There's minor dirty laundry in those libraries, which has been reported to the various maintainers. Stuff like this:

    - You can get a file dialog hidden behind the main window, which, in a full screen program, is a real problem. Mostly a Linux problem; works fine on Windows.

    - Full screen on Windows mode under Wine 7 crashes Wine. Known Wine bug.

    - Warnings from WGPU, but it works around all of them with some minor performance loss.

    - Cross-platform packaging, to make a Windows installer without Windows, isn't implemented yet.

    So, not big stuff. A lot of stuff works that you might not expect to work, such as profiling with tracy. Wgpu is taking care of Vulkan vs Apple's Metal. (Apple just had to Think Different, to the annoyance of everybody doing 3D.) Opening a web page in the default browser is cross-platform. You can cross-compile - I build the Windows version on Linux, without using any Microsoft tools.

    With some more work, I could make this work on WASM and Android as well, but that requires some special casing, mostly because WASM doesn't have proper threads.

    So cross-platform desktop development is working pretty well. Most of the problems I'm running into would not appear in a more typical application.

    [1] https://github.com/John-Nagle/ui-mock

  • tauri

    Build smaller, faster, and more secure desktop applications with a web frontend.

  • Hey if you are so desperate to the point of considering a PWA (I like them, but the support isn't good and the UX isn't good either, it's also not even supported by a few major browsers such as Firefox) check out Tauri at https://tauri.app/ which uses the system web view and generally yields binaries of around 2MB (except if you use AppImage which is a bit larger of course).

  • ttrss-sandstorm

    Sandstorm port of Tiny Tiny RSS

  • I use one somewhat unhelpfully named "Tiny Tiny RSS Reader" by Stefan Prasse. He actually delisted it from the Windows Store, however, I have both the APPX files for sideloading it, and he did post the source online. I actually had an issue with it recently, and have been monkeying with the code, and sent a message asking if I can republish it with fixes, as it does not have a license at present.

    If you want me to send you the Appx, hit me up at me (at) ocdtrekkie.com

    Also, if there's a TTRSS client you really want to get working with the Sandstorm version, kick open an issue on the repo and let's see what we can do. (https://github.com/zenhack/ttrss-sandstorm/) Usually I've found the biggest challenge is many client apps don't support HTTP Basic Auth, which is what the Sandstorm API requires. If the server-side plugin will work in the Sandstorm environment and isn't detrimental to the package, maybe we can include it.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • flutter-embedded-linux

    Embedded Linux embedding for Flutter

  • I'm curious which operating systems people are still waiting for. We have delivered Windows, macOS and Linux on stable as of Flutter 3. We don't have plans to add more, but people in the community are working on things like embedded Linux: https://github.com/sony/flutter-embedded-linux

    Disclosure: I'm a Developer Relations Engineer for Flutter

  • neovide

    No Nonsense Neovim Client in Rust

  • Incidentally, if there's anyone into Windows installers and Rust, see [1][2] There's a Rust bundler for making installers cross-platform. Mac is done, Linux is partly done, and Windows needs someone familiar with the arcane world of Windows install files.

    [1] https://github.com/neovide/neovide/issues/1374

    [2] https://github.com/burtonageo/cargo-bundle/issues/116

  • cargo-bundle

    Wrap rust executables in OS-specific app bundles

  • Incidentally, if there's anyone into Windows installers and Rust, see [1][2] There's a Rust bundler for making installers cross-platform. Mac is done, Linux is partly done, and Windows needs someone familiar with the arcane world of Windows install files.

    [1] https://github.com/neovide/neovide/issues/1374

    [2] https://github.com/burtonageo/cargo-bundle/issues/116

  • couchbase-lite-C

    C language bindings for the Couchbase Lite embedded NoSQL database engine

  • > But what’s also important is decoupling the mechanism of distributing or syncing the data (for access from different locations/clients) from actually working with the data. Basically, this is the separation between file system and application.

    Is there any good FOSS middleware to handle this? CoreData (based on sqlite) can sync data to an iCloud CloudKit container[1]. Firebase can do this[2]. And Couchbase-lite-C can do it with JSON documents[3].

    Couchbase is the only system I know of that does this transparently and is open source across the board. But for some reason no one seems to be using it.

    [1] https://developer.apple.com/documentation/coredata

    [2] https://en.wikipedia.org/wiki/Firebase

    [3] https://github.com/couchbase/couchbase-lite-C

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts