Thanks to Electron you can build cross-platform desktop apps with JavaScript, HTML, and CSS. It's an open-source project, that uses Chromium and Node.js and is actively maintained by GitHub.
It's been in my eye for a while, so I'm curious have you built any projects with it, and what was your experience?
Top comments (28)
Yeah, I love electron! I built a memory game (where you have to remember numbers - inspired by youtube.com/watch?v=zsXP8qeFF6A) - this was actually better suited to a browser-based/online game in the end.
I also made an internal (non-internet) network monitoring tool for a friend whose company does security in places with private (non-internet) local networks for the CCTV cameras - that uses node and ICMP ping to check uptime of various devices and uses Electron's inter-process-communication (IPC) for the communication between front-end and back-end within the app. This was also the first one I actually exported as a Windows and a Mac binary so it helped me learn how to use the user's local storage area on whatever device etc (for a small settings SQLite DB and some JSON config basically in my case).
Another fun one was a soundboard I made for my church's "nativity" play last year - our church rent a school and don't have a usable internet connection there, so it needed to be offline - so I made a really simple app with basically an "admin" screen where you "upload" audio files and give them a name/description and then a "user" screen where you just have a load of buttons to actually play the various sounds. I started writing an article about it and then got distracted (a year ago :P) - maybe I'll get back on that at some point :)
Yeah I built a markdown editor in electron.
It was fairly easy because if you know HTML, CSS and JavaScript you can easily create one.
The tough part is to build it and push it to Microsoft and apple store.
You have to do a lot of work on that.
But in future it is going to be the go to one as companies are opting for cross platform development for lowering their cost and development time.
Lets see!!
Just saw this post and got interested in Electron because I wanted to do the same with one app that I have build with C#.
One question, can you install the apps locally without pushing it to any store ?
Yeah mate you can do it. You have to do it with electron-builder or electron-packager.
I did with electron-builder and I am using it locally.
Do you want me to do a post on that?
It will help a lot :D Some posts over Stack Overflow are not that explicit.
I think I am gonna do it! Stay tuned!
Vlad I made an article because you asked!
Here is the link Electron-Builder
Tell me your views about it!!
I did! Actually, @maurogarcia_19 and I built a few apps with Electron. One was a tool to sync files from a remote server into your PC automatically, here's a link with a few screenshots. We're really happy with how it turned out.
We had to overcome some issues though. It wasn't easy to configure SQLite (I don't quite remember why, but I remember it was a real headache). We also found it challenging to generate the package and manage app updates.
This was a few years ago, so maybe these things have become a bit easier now.
I'm curious about Electron.NET. I haven't tried it yet, but it may be interesting for people with a .NET background.
Yes SQLite was a nightmare for me too - because Electron bundles your app files inside an "ASAR" archive, so you have to (a) take it out the ASAR (there's some option for that, can't remember off-hand) and (b) put it in the "user files" path rather than the actual app root (so it's writable).
SQLite is still the best database for Electron.
However, for some time, only
node-sqlite3
can be compile (with electron-gyp to*.node
) in macOS.better-sqlite3
cannot be used.Yes. It has fallen horribly out of date and always had a package problem (registering as an error, which made creating an installer difficult), but while I was at a job that decided to use Slack for everything, but didn't pay for the accounts, I was able to put together SlackBackup shockingly quickly.
For simpler tools, I've been using Proton Native, which translates React Native to Qt interfaces, but it's not ready for prime time (it still doesn't have window titles) and hasn't seen an update in quite a few months, so I can't quite recommend it, yet.
i created visual designer with Electron. Itās great for creating multiplatform applications very easily. However, it has cons, like large bundle size and performance. For my project I created UI part in Electron and part where I need performance, in C++ and C#. You can see it in action here algonia.net/Home/Documentation/pro...
A few...
I've made a lot of small applications back in the time and except the file size I think Electron is the best tool to build cross platform apps if you're a web developer.
Taking screenshots of web pages.
github.com/ozgrozer/truman
Scraping web pages.
github.com/ozgrozer/travis
A unit converter.
github.com/ozgrozer/trevor
An image resizer.
github.com/ozgrozer/electron-image...
I am currently working on electron based desktop music player. So far I am enjoying working on it. It is extremely powerful. The only problem I have faced is in integrating the node backend with the electron.
I've participated in a 24hr app making contest to get some extra points for the main event. We made a working app that helped teachers monitor kids that seem not to be active during class. You could argue it had some GDPR holes in it lol, but the main idea was that you would use it along side a meeting app like zoom, and you could see what the kids in the class had open and could also close their applications, as well as block certain websites so they couldn't use them. We should have implemented like a "are you sure you want to close this app" feature, and also a nudge feature but we didn't really had time for it. It was basically a negative reinforcement app but hey, the judges gave us the most points because they said this approach actually works.
Anyways it was really fun making it, since it was out first time (me and my colleague's) making something using electron and Socket.IO. š
Ps. Ama share a link to the GitHub repo if anyone is interested š
Yes, but not really successful, nor production level.
It was a project I want to have full and latest web browser API's, not just minimal JavaScript engine as in Qt WebEngine.