No matter how much I hate the bloat, and no matter how much I don't like JavaScript as and language due to it's behaviour around type coercion, I can't help it but to agree with everything in this article. Reusing the frontend skills I learned throughout the years to build desktop apps when needed, instead of having to learn an OS toolkit (and in the case of linux, multiple desktop environments, neve mind Wayland vs X) is the difference between shipping something and not shipping at all.<p>Learning takes time and effort, and the more general the tool I use the better.<p>If I had to implement a desktop app tomorrow, I would default Electron, no contest.<p>A bit of an aside, but I was thinking lately, it would be great for linux to have an SSD benchmarking app, just like CrystalDiskMark, I would never attempt to implement something like this in Qt or GTK, there's just too much to learn beforehand compared to simply going with CSS, wrapping the fio command in a JavaScript shell call then publishing everything as an appimage. This way I know it will work everywhere and it will have a consistent look and feel everywhere. I might actually set this up as a weekend project sometime next month. Without Electron it would take me months of intense dedicated time, which I would rather spend on something else.
For me the big win is that it feels familiar to users. It's not a native app, but it looks like their native browser.<p>Users are acutely sensitive to apps that feel right. It's something Java learned the hard way, or not at all: there's an uncanny valley if you get it wrong, and users hate that. Native apps will always be better than a web app, but a web app will be better than an app that doesn't really have a home on any platform.<p>It would have been great if users were willing to say, "Oh, I know this, it's a Swing app, just like the one I used on my Mac/PC/Linux/etc." But Swing never really succeeded, and web browsers did.
For all the hate it gets, this is exactly why I'm glad Electron exists: tooling that empowers people to create things that would otherwise be entirely out of reach for them.<p>Congrats on the app, it looks great :)
This is the entire reason Electron is so popular, and generally users love these apps and don't care about whether apps use native OS controls. This is the same approach Capacitor takes for mobile. Being able to use your existing frontend skills and access the existing web dev market is really compelling.
I understand performance concerns, but not "native" app. Most popular thing on desktop used by people are Facebook, Youtube, Instagram, Gmail and Google Calendar, Reddit, Netflix, Wikipedia.<p>I have never seen people avoiding them, because they don't have a native interface. As long as interface is intutive, people are happy to use them.
There's also the benefits of things like this - You want an app that supports the new Apple silicon? tadaaa most of the work's done for you already - <a href="https://www.electronjs.org/blog/electron-11-0" rel="nofollow">https://www.electronjs.org/blog/electron-11-0</a>
I think React Native is also a contender, now with Windows and macOS support coming online. Yes, the "UI Framework" story still needs some work and it's obviously nowhere near the web, but otherwise it's a nice middle choice where you get a lot of the perf benefits and "native UX" look and feel, while still being able to leverage a lot of webdev skills like JavaScript and Flex.
We're in the same boat. One of our main driving factors is that in the issue tracker we're building [0], we use an editor (SlateJS) that has its own format for how documents are represented, and our issues are pretty rich and complex. To try and reproduce an editor that adhered to the same schema across multiple platforms is simply more work than we can take on as a small startup.<p>We will of course ship native iOS/Androids apps at some point and then there will come a reckoning. Some sort of a hybrid solution is an option of course (make the bulk of the app native and have a small webview for the editor).<p>0: <a href="https://kitemaker.co" rel="nofollow">https://kitemaker.co</a>, a super fast issue tracker with deep integrations to all of your tools
We just recently launched our desktop app on Electron for very similar reasons.<p>I've also heard that PWAs have made significant progress toward being a viable option for building a desktop app. Curious what folks think about this as an Electron / native alternative.
Given how nonexistent the development documentation is (not poor, nonexistent) it feels like Apple doesn’t even want you to write native apps.<p>Obviously they do, but it seems like explaining things to developers should be table stakes.
The pervasiveness of Electron without its flaws is why I'm really excited for Flutter desktop. It really does feel like write once, run everywhere. It is much faster and has minimal RAM usage because its compiled to a native binary, plus I get mobile and web apps out of it too.
To add some criticism from a user's perspective: I hate electron apps as a user. Not because of the bloat - it's annoying but doesn't cause problems in practice - but because of the UX. native GUIs all have some visual consistency and design rules and metaphors you can orient yourself by.<p>Browser-based apps have no common UI rules at all, which makes them significantly more confusing to use.
To my mind, it's not a huge market, but purists definitely exist. Do they justify the cost? It seems worth analyzing, but it's definitely a big cost if you want to stay cross-platform but use native tools.
Perfectly valid decision.<p>For my own desktop apps, I'd choose Qt, since cross platform support is top notch.<p>With that said, I understand that nowadays, C++ developers are harder to come by, and memory corruption issues are not fun to work with.
Cool product, it'd be interesting if a marketplace style thing could exist in it too to vastly increase the number of available images, and allow others to profit off your app too (you take your cut of course).
Shameless self-promotion: I built <i>Video Hub App</i> using Electron and Angular. It allowed me with virtually 0 new learning build a cross-platform app in a few months.<p>Currently I sell about 100 copies per month (and donate $350 of it to charity).<p>Public: <a href="https://videohubapp.com/" rel="nofollow">https://videohubapp.com/</a><p>GitHub: <a href="https://github.com/whyboris/Video-Hub-App" rel="nofollow">https://github.com/whyboris/Video-Hub-App</a><p>ps - and I have a free file renamer made in Electron and Angular: <a href="https://yboris.dev/renamer/" rel="nofollow">https://yboris.dev/renamer/</a>
The more I look at “modern” web sites and apps, the more I think that there should be a way to force software providers to offer discounts if their products are, essentially, bloated. (Prior to getting the software, you cannot tell how it is going to be implemented.)<p>There is a measurable cost <i>to me</i> for using these “lazy” apps:<p>- time and data plan spent downloading and updating these monsters<p>- my disk space (yes, my previous laptop <i>ran out of space</i>, which is hard to accept when you see “simple” apps using hundreds of megabytes)<p>- my battery life and utility bill (it is easy to measure the absurd CPU use of some of these things)<p>I am literally subsidizing your development with my own resources, because you couldn’t be bothered to create something that is at least <i>moderately</i> optimized for users.
I wish more companies would choose Electron instead of native apps so they could iterate faster on all platforms.<p>I bet most people who have a problem with Electron are laptop users. I use a refurbished HP desktop i7 that I bought two years ago for $300 on Amazon and upgraded the SSD and 32gb RAM for another $250 or so. I can run numerous instances of VS Code, Chrome, Slack, Postman, etc all day without even a hint of a slowdown. I also never hear my fans go on, not ever.<p>I work in a nice quiet room and I don’t have to travel to work. I never understood why people want to optimize for working on trains, planes and in meetings. Even when I was going into the office, I didn’t need to bring my computer home because I had the exact same machine at home since it was so cheap.