10 ms·
Why I chose Electron.js for my side business
- shanehoban 6y agoCool 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).
- jakelazaroff 6y agoFor 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. Congrats on the app, it looks great :)
- moneywoes 6y agoHow is Flutter for Windows and MacOS in contrast to electron?
- thefounder 6y agoI guess it is like Dart is for the web in contrast with JavaScript?
- Slartie 6y agoIt is alpha and it is from Google. Electron has neither of those flaws (which btw combine in my opinion to some kind of super-flaw, like those Transformers toys).
- apozem 6y agoMany years ago, after they iced one of their half-assed messaging apps, I joked that the Google motto is, “If it’s worth doing, it’s worth doing badly.” Will Flutter keep improving? Or will Google get bored with it and neglect it, like they have with Angular? I have a guess.
- judge2020 6y agohttps://flutter.dev/desktop https://flutter.dev/desktop Still in Alpha.
- cercatrova 6y agoMuch faster as it compiles to a native binary, but still in alpha.
- cocoa19 6y agoPerfectly valid decision. For my own desktop apps, I'd choose Qt, since cross platform support is top notch. With that said, I understand that nowadays, C++ developers are harder to come by, and memory corruption issues are not fun to work with.
- intrepidhero 6y agoQt is very doable from Python these days. I've found it quite nice to work with. I would guess you still have a bigger pool of engineers to draw from with web tech though.
- Spooks 6y agoI started working with C++ several months ago, mostly due to curiosity. Though I haven't done anything that I would consider extremely complex, memory corruption seems easy enough to deal with by planning. Maybe because it is so ingrained as whenever I heard discussions of C++, memory (de)allocation and memory corruption was always the first thing people talked about. Dealing with de-allocation feels like closing a curly brace, almost automatic.
- sdwolfz 6y agoNo 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. Learning takes time and effort, and the more general the tool I use the better. If I had to implement a desktop app tomorrow, I would default Electron, no contest. 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.
- zaro 6y agoYou should check Gnome Disks, it alrady has bencmarking builtin and is installed by default on Gnome environments.
- sdwolfz 6y agoThanks for pointing this out to me, I did not know about it, is it new? I remember a few years ago when I would start "Disks" in Ubuntu it would open the "baobab" tool. Might be just an unfortunate naming colision...
- RMPR 6y agoA few years ago Ubuntu was still using Unity.
- jsight 6y agoI just tried it and got some crazy high numbers for a VM image mounted on an external USB drive. Something seems off about how it is assessing caching.
- wayneftw 6y agoI wish more companies would choose Electron instead of native apps so they could iterate faster on all platforms. 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. 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.
- Ygg2 6y agoI have desktop and I hate Electron apps with a passion. Sure one or two apps are ok. But since each app is Electron (not literally but a huge number). Your RAM melts like butter in near Sun's orbit.
- altdatathrow 6y agoDiscord somehow manages to run quite efficiently in contrast to nearly every other Electron app out there.
- jfengel 6y agoFor me the big win is that it feels familiar to users. It's not a native app, but it looks like their native browser. 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. 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.
- chungus_khan 6y agoUsers don't recognize Swing, but I wouldn't say it didn't succeed. There are an unbelievable number of little utilities, obscure programs, and company-internal tools written in Swing that people use every day and don't really think about. Swing didn't catch on much for big name software, but it still manages to be everywhere, and is much of the reason a lot of intermediate users reflexively install Java on new systems when they get them.
- theobeers 6y agoExactly: a world full of Chromium natives. I'm torn between accepting this while waiting for the next paradigm shift, and resisting it out of a sense that someone has to.
- speedgoose 6y agoI think you are spot on about the uncanny valley of non native apps that try to look native. Java Swing apps or Qt apps look and feel bad on Mac or Windows. It's a bit better on GNU/Linux but a GTK app in a KDE environment or a Qt app in a Gnome environment will feel a bit wrong. Meanwhile an Electron app will look very normal and modern.
- IggleSniggle 6y agoThis is how I feel about Flutter today. Seems like a cool paradigm on the face of it, but they never feel native nor do they feel like a WebView or what-have-you. They're in their own uncanny valley.
- blackoil 6y agoI 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. 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.
- nxc18 6y agoI’m working on some Windows apps currently in the native-ish WPF and UWP frameworks. Being somewhat detail-oriented, I’ve noticed a few major areas where Electron apps tend to deviate from native: * button/link handling: win desktop uses the pointer with hover effects; electron uses a hand cursor with hover effects * minimize/maximize/close buttons, and title bars in general; electron apps tend to have them being bigger than native. Native tends to vary by framework, with UWP explicitly not allowing some of the desired customization. * Electron and web apps in general tend to allow more text selection than native does, and with different patterns; there are pros and cons to this. * Electron apps tend to handle high and mixed DPI better than the native frameworks (I can’t believe I’m typing this). UWP dialogs are super buggy on high and mixed DPI. WPF needs lots of manual configuration otherwise it will look blurry at least some of the time (the very latest changes _may_ have fixed this) I tend to support native development in general, but in the case of win desktop, the native frameworks are so bad and inconsistent, I’d rather just follow the web patterns. E.g. I think the hand cursor on buttons and things is actually quite nice and worth emulating, same with non-shit titlebars. Because so many daily use apps (VS Code, Teams, Slack, all of the web) are electron, electron often feels more native than native, at least on Windows. Edit, since I was suddenly triggered: SVG support on Windows is shit. WPF can sort of do it if you convert to Path geometries, but that isn’t a perfect match or convenient in any way. UWP does that, but with the added bonus of an extremely buggy rendering engine that falls down on even the simplest icons.
- sroussey 6y agoThe button hover and the text selection issues are one line CSS changes.
- jamifsud 6y agoWe just recently launched our desktop app on Electron for very similar reasons. 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.
- VengefulCynic 6y agoTo 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.
- yesimahuman 6y agoThis 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.
- viktorcode 6y agoUsers love functionality provided by those apps, not the fact they were made with Electron for business reason. People love Discord. On a desktop they have no choice but to use its Electron client. Some people love Skype, but I guess not one of them wanted for native Skype to migrate to Electron. The list goes on. Electron app developers are dime a dozen, comparing to native app developers. That's the biggest driver behind Electron popularity: business decision.
- OJFord 6y ago> People love Discord. On a desktop they have no choice but to use its Electron client These are just the last few results for `yay -Ss discord`: aur/purple-discord-git v0.0.r637.d47f0bc-1 (+13 0.24) A libpurple/Pidgin plugin for Discord. aur/ripcord 0.4.27-1 (+20 0.66) Qt-based Discord and Slack client aur/discord-canary 0.0.115-1 (+29 2.70) All-in-one voice and text chat for gamers that's free and secure. aur/discord_arch_electron 0.0.12-4 (+46 17.96) Discord (popular voice + video app) using the system provided electron for increased security and performance community/discord 0.0.12-2 (50.8 MiB 173.6 MiB) (Installed) All-in-one voice and text chat for gamers that's free and secure.
- krebs_liebhaber 6y agoI've used a few alternative Discord frontends, both GUI and terminal-based. To put it frankly: they're all flaming heaps of dog shit.
- Cu3PO42 6y agoThe ToS explicitly forbid usage of third-party clients and people have been banned over this issue. Some people may be fine with taking this risk, but I also absolutely understand not wanting to deal with it. Personally, I fall in the latter category, so I mostly have the web client open in a pinned tab.
- kevsim 6y agoWe'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. 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). 0: https://kitemaker.co https://kitemaker.co, a super fast issue tracker with deep integrations to all of your tools
- fnord123 6y agoLooks awesome. Jira's shit performance is a real killer.
- kevsim 6y agoThanks! We fully agree. For us, with whatever features we decide to add, keeping it as snappy as possible and keeping it possible to do literally everything with the keyboard is a must. We do every once in a while end up with really embarrassing bugs though since we rarely touch the mouse ourselves.
- yboris 6y agoShameless self-promotion: I built Video Hub App using Electron and Angular. It allowed me with virtually 0 new learning build a cross-platform app in a few months. Currently I sell about 100 copies per month (and donate $350 of it to charity). Public: https://videohubapp.com/ https://videohubapp.com/ GitHub: https://github.com/whyboris/Video-Hub-App https://github.com/whyboris/Video-Hub-App ps - and I have a free file renamer made in Electron and Angular: https://yboris.dev/renamer/ https://yboris.dev/renamer/
- MR4D 6y agoYour filmstrip view looks pretty cool. Nice work!
- geodel 6y agoWell I guess good for you. Moreover in my case electron used 0MB of memory because I did not use it. So it is pretty good.
- ravedave5 6y agoThere'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 - https://www.electronjs.org/blog/electron-11-0 https://www.electronjs.org/blog/electron-11-0
- bestorworse 6y agoThis resumes the desktop app development drama. I hope Flutter will solve that
- occz 6y agoIf I had to bet on anything cross-platform - a stretch, for sure - it'd have to be Compose. Or SwiftUI, if it comes to Windows/Linux (unlikely)
- makecheck 6y agoThe 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.) There is a measurable cost to me for using these “lazy” apps: - time and data plan spent downloading and updating these monsters - my disk space (yes, my previous laptop ran out of space, which is hard to accept when you see “simple” apps using hundreds of megabytes) - my battery life and utility bill (it is easy to measure the absurd CPU use of some of these things) I am literally subsidizing your development with my own resources, because you couldn’t be bothered to create something that is at least moderately optimized for users.
- MattGaiser 6y agoThe cost to them is in you choosing not to use it if you do not view the resource use as a good deal.
- sabellito 6y agoI'd like to understand your point of view a little better. My understanding is that you could not use these apps. So how could one feel entitled to discounts based on implementation quality?
- CJefferson 6y agoIf you don't want it, you don't have to use it. In practice you are getting a "discount", because there was a time when most apps were paid for, while all the electron apps I use at least are free -- so there isn't anything to discount.
- knowingathing 6y agoI hadn't thought of many of these things, thanks for raising them. The flip side of not using Electron.js and going for native development (which would help solve these points) would mean I never would have shipped Loaf. That's the issue I was facing. Due to money (development costs) and ongoing support (being able to improve and maintain the UI with CSS) I had to find a tool that would work for me. Maybe one day with enough time and money, I'll be able to develop some beautiful native desktop apps for macOS and Windows. That would be nice :)
- gigel82 6y agoI 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.
- sktguha 6y agoYes I am curious to see how it evolves
- deleted 6y ago[deleted]
- gumby 6y agoGiven how nonexistent the development documentation is (not poor, nonexistent) it feels like Apple doesn’t even want you to write native apps. Obviously they do, but it seems like explaining things to developers should be table stakes.
- cercatrova 6y agoThe 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.
- xg15 6y agoTo 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. Browser-based apps have no common UI rules at all, which makes them significantly more confusing to use.